簡體   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