Python matplotlib图中的fig和ax属性

Python matplotlib图中的fig和ax属性,python,matplotlib,Python,Matplotlib,哪个对象包含属性ylim()?在下面的代码中(我已经导入了所需的软件包,并且正确地绘制了x1和y1来设置y轴限制,我必须使用plt.ylim(),为什么会这样?在我自己的头脑中,我会使用ax1.ylim(),因为y轴属于ax对象实例。有人能解释一下为什么这是不正确的吗 我在这里看到这个帖子: 这有助于澄清一点,但我仍然不确定。 谢谢 我的想法是,pyplot.ylim()是一个方便的函数(从技术上讲,它不是一个属性),提供类似于MATLAB的功能来设置当前轴(最近创建或绘制的轴)的y限制,而a

哪个对象包含属性
ylim()
?在下面的代码中(我已经导入了所需的软件包,并且正确地绘制了
x1
y1
来设置y轴限制,我必须使用
plt.ylim()
,为什么会这样?在我自己的头脑中,我会使用
ax1.ylim()
,因为y轴属于ax对象实例。有人能解释一下为什么这是不正确的吗

我在这里看到这个帖子:

这有助于澄清一点,但我仍然不确定。 谢谢


我的想法是,
pyplot.ylim()
是一个方便的函数(从技术上讲,它不是一个属性),提供类似于MATLAB的功能来设置当前轴(最近创建或绘制的轴)的y限制,而
ax1.set_ylim()
设置特定轴对象的y限制(可能有多个)已命名为
ax1


plt.ylim()
适用于不需要太多自定义的快速绘图。当您需要跟踪与绘图相关的更多对象以更清晰地自定义它们(并跟踪您自定义的对象)时,更面向对象的ax1.set_ylim()更好。

您可以使用
ax.set_ylim()((上下))
设置限制()

matplotlib
鼓励两种不同的使用风格。一种是提供最大灵活性的OO风格,另一种是大量使用全局状态的matlab风格。后者有助于快速交互式探索,前者是实现生产就绪的微调图的方法

你可以阅读更多关于这方面的内容


我建议坚持一种风格,因为两者混合会带来麻烦(至少我经历过这种情况)

不确定我是否理解这个问题,但你可以使用
ax.set_ylim((下,上))
来设置限制()。
matplotlib
鼓励两种不同的使用风格,你可以在()(以我的经验来看)混合这两种风格不是一个好主意。这是对评论的回答。如果你将其作为回复发布,我会将其标记为对你的回答。
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')