在matplotlib中设置误差条的子图显示范围

24 投票
2 回答
27697 浏览
提问于 2025-04-17 06:49

我正在尝试使用matplotlib来绘制我的数据。我有三组不同的数据,想在三个子图中展示(我参考了这个链接)。

plt.figure()

fig, axs = plt.subplots(nrows=3, ncols = 1, sharex=False)
ax1 = axs[0]
ax1.errorbar(X,Y,Err,fmt='o')
ax1.set_xscale('log')
ax1.set_yscale('log')
ax1.set_title('epsilon=1.5, kappa = 2')
plt.show()

不过,我的x轴范围是从1(或者0,我不太确定)到100,我想把这个范围缩小。我试过这个方法,通过添加以下内容:

ax1.xlim(0.5,13.5)

但是我遇到了一个错误:

AttributeError: 'AxesSubplot'对象没有'xlim'这个属性

那我该如何改变这个范围呢?

2 个回答

12

轴对象对应的方法是 set_xlim(xmin,xmax)

30

你可能想用 Axes.axis(*v, **kwargs) 这个方法:

ax1.axis(xmin=0.5,xmax=13.5)

根据文档的说明:

这个方法可以用来设置或获取坐标轴的属性。

如果你传入的 *v 里面没有任何内容(也就是长度为0),你可以选择性地通过 kwargs 来传入 xminxmaxyminymax,这样就可以只改变这些边界的值,而不影响其他的设置。

撰写回答