在pyplot中为轴设置xlim和ylim将删除填充。如何在不改变填充的情况下设置它们?
示例:
fig, ax = plt.subplots()
x = np.linspace(0, 200, 500)
ax.set_ylim(ymax=100)
line = ax.plot(x, data, '--', linewidth=2, label='foo bar')
plt.show()
在所示的图中,x轴将具有填充,而y轴不具有填充。如何让他们都有填充,同时拥有我想要的ylim?
答案 0 :(得分:3)
Axes.set_ymargin
和Axes.set_ylim
是互斥的。设置轴的限制会覆盖边距。
有两个选项可以设置边距(填充)。
可以使用
调整保证金ax.set_ymargin(0.1) or ax.margins(y=0.1)
其中0.1
两个轴端的边距为10%。 (当然,x
轴也一样)。这里的缺点是边距总是对称的。
使用ax.set_ylim(0, 100)
设置的限制并根据需要进行调整
例如。如果data
是以numpy数组的形式绘制的数据,并且我们希望底部有10%的边距,顶部有40%的边距,我们可以使用
ymin = data.min()-0.1*(data.max()-data.min())
ymax = data.max()+0.4*(data.max()-data.min())
ax.set_ylim((ymin, ymax))
如果需要,当然可以简单地将ymax设置为ymax = 100
。