我正在窗口中处理几个子图。在绘图之后它看起来很棒,问题是当我手动重新调整窗口时。子图不能正确适应窗口的新大小。我该如何解决这个问题?
绘图后的窗口,看起来很棒:
手动调整大小后的窗口看起来很糟糕:
编辑:
简单的演示代码:
from matplotlib.pyplot import *
figure(figsize=(24,6))
subplot(131)
ylabel("test")
plot([1,2,3], label="test1")
plot([3,2,1], label="test2")
subplot(132)
ylabel("test")
plot([1,2,3], label="test1")
plot([3,2,1], label="test2")
subplot(133)
ylabel("test")
plot([1,2,3], label="test1")
plot([3,2,1], label="test2")
tight_layout()
show()
如你所见,情节看起来很好。但是当你开始水平缩小绘图时,绘图和绘图之间的空间会越来越小。最后,勾选标签位于其他地块上,因为它们没有空间。我需要知道如何设置整个绘图变小,为标签留出空间。
答案 0 :(得分:3)
也许不完全是我的问题的答案,但它解决了我的问题:
创建图形后,将resize-event连接到eventhandler:
cid = fig.canvas.mpl_connect('resize_event', onresize)
def onresize(event):
plt.tight_layout()
正如Wicket所说,我只是一次又一次地呼叫tight_layout()
,但却是自动的。