哪个对象包含属性ylim()
?在下面的代码中(我已导入所需的包并x1
和y1
正确绘图)来设置y轴限制,我必须使用plt.ylim()
,为什么会这样?在我自己的脑海里,我会使用ax1.ylim()
因为y轴属于ax对象实例。有人可以解释为什么这不正确吗?
我在这里看到这篇文章:
Why do many examples use "fig, ax = plt.subplots()" in Matplotlib/pyplot/python
这有助于澄清一点,但我仍然不确定。 谢谢!
x1 = df_mstr1['datetime'].values
y1 = df_mstr1['tons'].values
fig1, ax1 = plt.subplots()
ax1.stackplot(x1, y1, color='blue')
plt.ylim(0,300)
fig1.savefig('page.pdf', format = 'pdf')
答案 0 :(得分:5)
我想到的方式是 pyplot.ylim()
是便利函数(它在技术上不是属性),提供类似MATLAB的功能来设置 current的y限制< / em> axes(最近创建或绘制的轴),而ax1.set_ylim()
设置特定轴对象(可能有多个)的y限制,您将其命名为ax1
。< / p>
plt.ylim()
适用于不需要太多自定义的快速绘图。当您需要跟踪与您的情节相关的更多对象时,更加面向对象的ax1.set_ylim()
会更好,以便更清晰地自定义它们(并跟踪您已定制的内容)。
答案 1 :(得分:1)
您可以使用ax.set_ylim((lower, upper))
设置限制(http://matplotlib.org/api/axes_api.html#matplotlib.axes.Axes.set_ylim)。
matplotlib
鼓励两种不同的使用方式。 OO风格提供最大的灵活性和matlab风格,大量使用全球状态。后者对于快速交互式探索很有用,前者是生产就绪的微调图的方法。
您可以详细了解here。
我建议坚持一种风格,因为混合都会导致麻烦(至少是我所经历过的)