Python 在所有子批次中使用列打印数据帧

Python 在所有子批次中使用列打印数据帧,python,pandas,matplotlib,plot,Python,Pandas,Matplotlib,Plot,假设我有一个包含3列的熊猫数据框架。我想将其中两列绘制为单独的子图,另一列应该出现在其他两个子图上 为了更好地解释,请考虑例子 x = np.linspace(0,10,5) y1 = 2*x y2 = 3*x y3 = 4*x df = pd.DataFrame(index=x, data=zip(*[y1,y2,y3])) df.plot(subplots=True, layout=(1,3), ylim=[0,40]) 此代码显示 这接近我想要的。但不完全如此。我希望该地块只有两个子

假设我有一个包含3列的熊猫数据框架。我想将其中两列绘制为单独的子图,另一列应该出现在其他两个子图上

为了更好地解释,请考虑例子

x = np.linspace(0,10,5)
y1 = 2*x
y2 = 3*x
y3 = 4*x

df = pd.DataFrame(index=x, data=zip(*[y1,y2,y3]))
df.plot(subplots=True, layout=(1,3), ylim=[0,40])
此代码显示

这接近我想要的。但不完全如此。我希望该地块只有两个子地块。一个包含第0列和第1列,另一个包含第0列和第2列。正如将每一列与另一列进行比较一样。最近的一次是

df[[1,2]].plot(subplots=True, layout=(1,2), ylim=[0,40])
plt.plot(df.index, df[0], label=0)
这给了我一张图片,其中列0只出现在第二个子图中,而不是出现在所有子图中:

有没有办法做到这一点?最好不要完全离开熊猫。我知道我可以迭代第1列和第2列,然后在第0列旁边用pyplot手动绘制它们,但这太多代码了,如果可能的话,我希望避免这种情况。

像这样

ax = df[[1,2]].plot(subplots=True, layout=(1,2), ylim=[0,40])

for axe in ax[0]:
    axe.plot(df.index, df[0])

诀窍(如果不明显,请指出)是pandas
plot
返回matplotlib轴。在最后一行中添加
label=0
会有什么效果?这没用,很好的注释:-)它在这里是因为它在问题中,我保留了它。我已更新我的答案以删除它。谢谢你的评论。