我写了一个小GUI,显示了隧道剖面示意图和诱导沉降。上图的宽高比设置为“自动”。较低的图的宽高比设置为“相等”(因为隧道会失真)。这些图的x轴是共享的。
我遇到的问题是下图的y轴没有显示所有数据。当我打印出下图的y限制时,y限制为(-20,100),这应该允许它显示所有数据。这个问题的解决方案是增加x限制,但我无法弄清楚如何以编程方式执行此操作,因为较低图的y限制输出不是可见限制,大约是(-2,84)。 / p>
任何想法或修正?
MWE:
import matplotlib.pyplot as plt
fig, (ax1, ax2) = plt.subplots(2,1,sharex=True)
ax1.plot([-10,0,10,-10],[-1,1,-1,-1])
ax2.plot([-5,-5,5,5,-5],[-10,10,10,-10,-10])
ax2.set_aspect('equal')
print(ax2.get_ylim())
plt.show()
答案 0 :(得分:0)
这有点深入到了胆量,但
w = ax.get_window_extent(None).width
h = ax.get_window_extent(None).height
应该让您在屏幕上显示(您可能需要传递ax.figure.canvas.renderer
而不是None
)身高和宽度。
然后您可以知道(xmax-xmin)/(ymax-ymin)
之间的比率,并可以相应地设置您的x限制。
这里的根本问题是你有一组相互关联的数字,你只能指定它们的子集。