使用2个Y轴比例创建可视化

时间:2019-04-07 05:39:33

标签: python pandas numpy matplotlib

我目前正在尝试将1080图形卡的价格相对于比特币的价格随时间变化,但Y轴的标尺距离还很远。到目前为止,这是我的代码:

import pandas as pd
from datetime import date
import matplotlib.pyplot as plt
from matplotlib.pyplot import *
import numpy as np

GPUDATA = pd.read_csv("1080Prices.csv") 
BCDATA = pd.read_csv("BitcoinPrice.csv")

date = pd.to_datetime(GPUDATA["Date"])
price = GPUDATA["Price_USD"]

date1 = pd.to_datetime(BCDATA["Date"])
price1 = BCDATA["Close"]

plot(date, price)
plot(date1, price1)

这将产生此结果:

enter image description here

GPU价格当然是蓝色,比特币的价格是橙色。我对可视化还很陌生,现在很难在网上找到可以帮助解决此问题的任何内容。我在这里找到的一些建议似乎与从单个数据源绘制数据有关,但是我的数据来自2个数据源。

一个在给定的一天中记录了GPU的价格,另一个在给定的一天中记录了比特币的开盘价,收盘价,最高价和最低价。我正在努力寻找解决方案,任何建议都将受到欢迎!谢谢!

1 个答案:

答案 0 :(得分:1)

您想要做的是X轴 twin ,这样两个图将共享X轴,但具有单独的Y轴。可以通过以下方式完成:

import numpy as np
import pandas as pd

import matplotlib.pyplot as plt

GPUDATA = pd.read_csv("1080Prices.csv") 
BCDATA = pd.read_csv("BitcoinPrice.csv")

gpu_dates = pd.to_datetime(GPUDATA["Date"])
gpu_prices = GPUDATA["Price_USD"]

btc_dates = pd.to_datetime(BCDATA["Date"])
btc_prices = BCDATA["Close"]

fig, ax1 = plt.subplots()
ax2 = ax1.twinx()  # Create a new Axes object sharing ax1's x-axis

ax1.plot(gpu_dates, gpu_prices, color='blue')
ax2.plot(btc_dates, btc_prices, color='red')

由于您尚未提供示例数据,因此我无法展示相关的演示,但这应该可行。