我使用matplotlib
从Python绘制数据(使用plot
和errorbar
函数)。我必须绘制一组完全独立的图,然后调整它们的ylim
值,以便它们可以轻松地进行视觉比较。
如何从每个图中检索ylim
值,以便分别获取下限和上限ylim值的最小值和最大值,并调整图,以便可以直观地比较它们?
当然,我可以分析数据,并提出自己的自定义ylim
值.但我想使用matplotlib
来为我做这件事。关于如何轻松(有效)做到这一点,有什么建议吗?
下面是我的Python函数,它使用matplotlib
进行绘图:
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)
7条答案
按热度按时间lo8azlld1#
只需使用
axes.get_ylim()
,它与set_ylim
非常相似。从文档:get_ylim()
获取y轴范围[底部,顶部]
ubbxdtey2#
如果直接使用
plt
API,可以完全避免调用axes
:f0brbegy3#
利用上面的好答案,并假设您只使用plt,
然后你可以使用
plt.axis()
得到所有四个图限制,如下例所示。上面的代码应该产生以下输出图。
qcbq4gxm4#
只需使用
plt.ylim()
,它可以用来设置或获取最小和最大限制nwlqm0z15#
我使用
ax
而不是plt
将上述方法放在一起hl0ma9xz6#
不定义坐标轴:
46qrfjad7#
这是一个老问题,但我没有看到提到,根据细节,
sharey
选项可能能够为您完成所有这些,而不是挖掘轴限制,边距等。文档中有一个demo,展示了如何使用sharex
,但同样可以用 y 轴完成。