使用Pandas在Matplotlib中设置Y轴

64
使用Pandas在IPython Notebook中绘制图表时,我有几个图表,由于Matplotlib决定Y轴的设置方式不同,我们需要使用相同的范围来比较这些数据。
根据Matplotlib文档,似乎我需要设置ylim,但是我无法弄清楚如何编写语法。我已经尝试了几种变体,例如:
df2250.plot(); plt.ylim((100000,500000))
df2260.plot()
df5.plot()

我猜我需要对每个图表应用限制,但是由于我无法让一个工作...
2个回答

93

DataFrame.plot()暴露了一个ylim参数,用于设置y轴的限制:

df.plot(ylim=(0, 200))

我猜这个功能是在2013年Rutger's answer被接受之后添加的。

74

Pandas的plot()函数返回坐标轴对象,您可以使用它来设置ylim.

ax1 = df2250.plot()
ax2 = df2260.plot()
ax3 = df5.plot()

ax1.set_ylim(100000,500000)
ax2.set_ylim(100000,500000)
etc...

您还可以将轴传递给Pandas plot函数,以便在同一轴上绘制它,例如:

ax1 = df2250.plot()
df2260.plot(ax=ax1)
etc...

如果您想要许多不同的图,预先定义坐标轴,并在一个图中进行操作可能是能够提供最多控制的解决方案:

fig, axs = plt.subplots(1,3,figsize=(10,4), subplot_kw={'ylim': (100000,500000)})

df2260.plot(ax=axs[0])
df2260.plot(ax=axs[1])
etc...

1
你可以在 plt.subplots 中添加 sharey=True。这样,即使你放大某个子图,y 轴的限制也会保持不变。 - esmit

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接