如何在matplotlib中使用ax.get_ylim()?

9
我将执行以下导入操作:

import matplotlib.pyplot as plt
import matplotlib.axes as ax
import matplotlib
import pylab

它能够正确地执行。

plt.plot(y1, 'b')
plt.plot(y2, 'r')
plt.grid()
plt.axhline(1, color='black', lw=2)
plt.show()

并展示图表。
但如果我插入:
print("ylim=", ax.get_ylim())

我收到了错误信息:

AttributeError: 'module'对象没有属性'get_ylim'

我已经尝试使用ax.替换为plt.、matplotlib等,但是我仍然得到相同的错误。

调用get_ylim的正确方法是什么?

1个回答

12

不要导入 matplotlib.axes,在你的例子中,你只需要导入 matplotlib.pyplot

get_ylim() 是 matplotlib.axes.Axes 类的一个方法。如果你使用 pyplot 绘制图形,这个类会被自动创建。它表示坐标系,并拥有所有绘制和配置它所需的方法。

在你的例子中,没有名为 ax 的 Axes,你将 matplotlib.axes 模块命名为了 ax。

要获得当前由 Matplotlib 使用的坐标轴,可以使用 plt.gca().get_ylim()

或者你可以像这样操作:

fig = plt.figure()
ax = fig.add_subplot(1,1,1) # 1 Row, 1 Column and the first axes in this grid

ax.plot(y1, 'b')
ax.plot(y2, 'r')
ax.grid()
ax.axhline(1, color='black', lw=2)

print("ylim:" ax.get_ylim())

plt.show()

如果您只想使用pyplot API:plt.ylim()也会返回当前的ylim值。


如果您要使用pyplotpylab,则无需导入matplotlib.axes。如果您想轻松获取一个Axes对象,请使用fig,ax = plt.subplots() - Paul H
更简短的代码是 plt.plot(y1) print(plt.gca().get_ylim())。 不需要任何轴。 - Matthias Arras
这是在文本中的内容 ;) - MaxNoe

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