使用以下代碼作為示例,我創建了一個名為數據集的數據框。value1 = np.random.random(100)*30value2 = np.random.random(100)*30value3 = np.random.random(100)*30value4 = np.random.random(100)*1000dataset = pd.DataFrame({'value1': value1, 'value2': value2, 'value3': value3, 'value4': value4}, columns=['value1', 'value2', 'value3', 'value4'])dataset[['value1', 'value2', 'value3']].plot(figsize=(20,10), linewidth=2, fontsize = 20, grid=True, marker="o", label='a').legend(loc='upper center', bbox_to_anchor=(0.5, -0.12), ncol=12, prop={'size': 16});dataset['value4'].plot(secondary_y=True, legend=True, linewidth=2, marker="o",)plt.xlabel('Year',fontsize=20)plt.ylabel('(b)',fontsize=20)我在 2 軸上繪制此數據集,但出于某種原因,只打印出右側的軸,但未打印左側的軸,我不確定為什么。其次,我還試圖查看 value1、2、3 如何響應變量 4(value4),所以我希望顯示的圖如下圖所示。在圖像中,我們可以看到變量 4 位于圖表底部,其余變量位于頂部,因此我們可以清楚地看到變量 4 的上升或下降如何影響變量 1、2、3。Currenly 顯示屏顯示所有所有變量混合在一起,但我希望它看起來像下圖。任何幫助都會很棒,謝謝
1 回答

翻翻過去那場雪
TA貢獻2065條經驗 獲得超14個贊
你的代碼是正確的。它們分別繪制在兩個軸的范圍內。如果您想將它與您的預期輸出相匹配,您可以使用ax1.set_ylim(-30,30)or ax 2.set_ylim(0,4000)。
ax1 = dataset[['value1', 'value2', 'value3']].plot(figsize=(20,10),
linewidth=2, fontsize = 20,
grid=True, marker="o", label='a')
ax1.legend(loc='upper center', bbox_to_anchor=(0.5, -0.12), ncol=12, prop={'size': 16});
ax2 = dataset['value4'].plot(secondary_y=True,legend=True, linewidth=2, marker="o",)
ax1.set_ylim(-30,30)
ax2.set_ylim(0,4000)
ax1.set_xlabel('Year',fontsize=20)
ax2.set_ylabel('(b)',fontsize=20)
添加回答
舉報
0/150
提交
取消