繁体   English   中英

如何用多行从2个不同的数据集中创建可视化?

[英]How to create visualization from 2 different data sets with multiple lines?

我正在尝试绘制GPU的价格与Cryptocurrency的价格。

我已经能够创建2个单独的可视化文件,按年份显示GPU的平均价格和加密货币的平均价格,但似乎无法将它们结合起来。

...
plt.plot(GPUDATA.groupby(GPUDATA['Date'].dt.strftime('%Y')['Price_USD'].mean())
...

生成此图像的“ GPU价格”:
图片

plt.plot(BITCOINDATA.groupby(BITCOINDATA['Date'].dt.strftime('%Y'))['Open'].mean())

生成“加密价格”的图像:
加密货币

我需要将这两种可视化结合到一张图中。 我是创建可视化工具的新手,因此不确定是否需要提供更多信息。 我很乐意提供更多需要的信息! 谢谢!

编辑:数据框中的条目列出了产品的ID,然后是日期,然后是该日期产品的价格。 因此,GPU数据框和加密数据框上都有很多重复的年份和ID,这就是为什么我按功能进行分组。

这是为每个系列创建单独的y轴的解决方案。 我生成了随机数据,这就是图表看起来不同的原因。 您可以修改以下每个y轴的参数,例如上下限。

import matplotlib.pyplot as plt

fig, ax1 = plt.subplots(figsize=(10,10))
ax2 = ax1.twinx()

ax1.plot(GPUDATA.groupby(GPUDATA['Date'].dt.strftime('%Y'))['Price_USD'].mean(),'r', label = 'Avg GPU Prices')
ax1.set_ylabel("Avg GPU Price", color='r', fontsize=20)
ax1.set_ylim(350,600)
ax1.tick_params(axis='y', colors= 'r', labelsize=14)
ax1.tick_params(axis='x', colors= 'k', labelsize=14)

ax2.plot(BITCOINDATA.groupby(BITCOINDATA['Date'].dt.strftime('%Y'))['Open'].mean(), 'b', label = 'Avg Crypto Prices')
ax2.set_ylabel("Avg Crypto Price", color='b', fontsize=20)
ax2.set_ylim(0, 900)
ax2.tick_params(axis='y', colors= 'b', labelsize=14)

lines, labels = ax1.get_legend_handles_labels()
lines2, labels2 = ax2.get_legend_handles_labels()
ax1.legend(lines + lines2, labels + labels2, loc=2, fontsize=20)

ax1.grid(b=False)
ax2.grid(b=False)

plt.title("Yearly Average GPU and Crypto Prices", fontsize=25)
plt.show()

在此处输入图片说明

plt.close('all')
ax = GPUDATA.groupby(GPUDATA['Date'])['Price_USD'].mean().plot()
BITCOINDATA.groupby(BITCOINDATA['Date'])['Open'].mean().plot(ax=ax)
plt.show()

在此处输入图片说明

您可以使用绘图参数添加标签和图例

https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.plot.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM