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

9 投票
1 回答
27380 浏览
提问于 2025-04-18 18:00

我做了以下的导入:

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' object has no attribute '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 的接口:plt.ylim() 也能返回 ylim 的值。

撰写回答