1

我编写了一个小 GUI,显示了隧道截面示意图和诱导沉降。上图的纵横比设置为“自动”。下图的纵横比设置为“相等”(因为隧道会扭曲)。这些图共享它们的 x 轴。

我遇到的问题是下图的 y 轴没有显示所有数据。当我打印出下图的 y 限制时,y 限制为 (-20,100) 应该允许它显示所有数据。这个问题的解决方案是增加 x 限制,但我无法弄清楚如何以编程方式执行此操作,因为下图输出的 y 限制不是可见限制,大约是 (-2,84)。

任何想法或修复?

问题截图

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()
4

1 回答 1

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 限制。

这里的根本问题是你有一组相互关联的数字,你只能指定它们的一个子集。

于 2013-08-29T21:13:52.517 回答