[英]matplotlib: Set width or height of figure without changing aspect ratio
[英]matplotlib: How to eliminate wasted space from plot without changing aspect
我想在 matplotlib 中显示具有相同纵横比的 plot。 然后我想截断 plot 的 y 部分,以便更仔细地查看数据。 但是,我希望自动更改 x 轴限制以适应数据的剩余可见部分。
到目前为止,这是我的代码(出于说明目的使用假数据):
import matplotlib.pyplot as plt
fig, ax = plt.subplots(1, 1)
ax.plot([-2,-1,0,1,2], [4,1,0,1,4])
ax.set_aspect('equal', adjustable='box')
ax.set_ylim(0,1)
fig.show()
和结果图像:
我的问题是,如何在保留纵横比的同时从 plot 的左侧和右侧删除空格,这样 plot 会更大并且更适合数据? 不幸的是,我可能不知道我想要的确切 x 限制或在给定 y 限制的情况下推导出它们的公式。
您要求的是某种基于可见数据的自动缩放。 这在 matplotlib 中没有实现。 不过,您可以手动进行,即基于所需的 y 限制,检查哪些点是可见的,然后相应地设置 x 限制。
import matplotlib.pyplot as plt
fig, ax = plt.subplots(1, 1)
line, = ax.plot([-2,-1,0,1,2], [4,1,0,1,4])
ax.set_aspect('equal', adjustable='box')
ymin = 0
ymax = 1
ax.set_ylim(ymin, ymax)
x,y = line.get_data()
cond = (y >= ymin) & (y <= ymax)
ax.set_xlim(x[cond].min(), x[cond].max())
plt.show()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.