如何从具有多行的两个不同数据集创建可视化?

2024-03-28 10:21:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在试图绘制GPU的价格与加密货币的价格。你知道吗

我已经能够创建两个独立的可视化显示GPU的平均价格和加密货币的平均价格的一年,但似乎不能结合起来。你知道吗

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

为“GPU价格”生成此图像: Image

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

为“加密价格”生成此图像:
Crypto

我需要这两个可视化结合成一个图形。我对创建可视化有点陌生,所以我不确定还需要提供多少信息。我很乐意提供更多需要的信息!谢谢!你知道吗

编辑:dataframes中的条目列出产品的id,然后是日期,然后是该日期的产品价格。因此,在GPU数据帧和Crypto数据帧上都有很多重复的年份和id,这就是为什么我要按函数分组。你知道吗


Tags: 图像dategpuplot可视化dt货币plt
2条回答

下面是一个为每个系列创建单独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()

enter image description here

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

enter image description here

可以使用打印参数添加标签和图例

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

相关问题 更多 >