Matplotlib 获取 ylim 值

我正在使用 matplotlib绘制来自 Python 的数据(使用 ploterrorbar函数)。我必须绘制一组完全独立和独立的图,然后调整它们的 ylim值,这样就可以很容易地直观地进行比较。

如何从每个绘图中检索 ylim值,以便分别获取下部和上部元素值的最小值和最大值,并调整绘图以便可视化地进行比较?

当然,我可以只是分析数据,并提出我自己的自定义 ylim值... 但我想使用 matplotlib为我这样做。对于如何轻松有效地做到这一点,有什么建议吗?

下面是使用 matplotlib绘图的 Python 函数:

import matplotlib.pyplot as plt


def myplotfunction(title, values, errors, plot_file_name):


# plot errorbars
indices = range(0, len(values))
fig = plt.figure()
plt.errorbar(tuple(indices), tuple(values), tuple(errors), marker='.')


# axes
axes = plt.gca()
axes.set_xlim([-0.5, len(values) - 0.5])
axes.set_xlabel('My x-axis title')
axes.set_ylabel('My y-axis title')


# title
plt.title(title)


# save as file
plt.savefig(plot_file_name)


# close figure
plt.close(fig)
205915 次浏览

只要使用 axes.get_ylim(),它与 set_ylim非常相似:

得到 _ ylim ()

得到 y 轴的范围[底部,顶部]

 ymin, ymax = axes.get_ylim()

如果你直接使用 plt应用程式介面,你可以完全避免致电 axes:

def myplotfunction(title, values, errors, plot_file_name):


# plot errorbars
indices = range(0, len(values))
fig = plt.figure()
plt.errorbar(tuple(indices), tuple(values), tuple(errors), marker='.')


plt.ylim([-0.5, len(values) - 0.5])
plt.xlabel('My x-axis title')
plt.ylabel('My y-axis title')


# title
plt.title(title)


# save as file
plt.savefig(plot_file_name)


# close figure
plt.close(fig)

利用上面的好答案,并假设您只使用 plt

import matplotlib.pyplot as plt

然后您可以使用 plt.axis()获得所有四个绘图极限,如下面的示例所示。

import matplotlib.pyplot as plt


x = [1, 2, 3, 4, 5, 6, 7, 8]  # fake data
y = [1, 2, 3, 4, 3, 2, 5, 6]


plt.plot(x, y, 'k')


xmin, xmax, ymin, ymax = plt.axis()


s = 'xmin = ' + str(round(xmin, 2)) + ', ' + \
'xmax = ' + str(xmax) + '\n' + \
'ymin = ' + str(ymin) + ', ' + \
'ymax = ' + str(ymax) + ' '


plt.annotate(s, (1, 5))


plt.show()

上面的代码应该生成以下输出图。 enter image description here

这是一个老问题,但我没有看到提到,取决于细节,sharey选项可能能够为您做这一切,而不是挖掘轴限制,边距等。文档中有一个 小样展示了如何使用 sharex,但是同样的事情也可以用 轴来做。

我使用 ax而不是 plt将上述方法组合在一起

import numpy as np
import matplotlib.pyplot as plt


x = range(100)
y = x


fig, ax = plt.subplots(1, 1, figsize=(7.2, 7.2))
ax.plot(x, y);


# method 1
print(ax.get_xlim())
print(ax.get_xlim())
# method 2
print(ax.axis())

enter image description here

只要使用 plt.ylim(),它可以用来设置 或者离开的最小和最大限制

ymin, ymax = plt.ylim()