以下面的代码为例,我创建一个名为dataset的数据框。
value1 = np.random.random(100)*30
value2 = np.random.random(100)*30
value3 = np.random.random(100)*30
value4 = np.random.random(100)*1000
dataset = 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。当前,显示屏显示所有变量混合在一起,但是我希望它看起来像下面的图像。
任何帮助都会很棒,谢谢
您的代码是正确的。它们分别在两个轴的范围内绘制。如果要将其与期望的输出匹配,可以使用ax1.set_ylim(-30,30)
或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)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句