Matplotlib 如何设置子地块的调整大小行为?

Matplotlib 如何设置子地块的调整大小行为?,matplotlib,resize,subplot,Matplotlib,Resize,Subplot,我正在处理窗口中的几个子窗口。在绘制完之后,它看起来很棒,问题是当我手动重新打开窗口时。子窗口无法正确适应窗口的新大小。我怎样才能解决这个问题 绘图后的窗口,看起来很棒: 手动调整窗口大小后,它看起来很糟糕: 编辑: 一个简单的演示代码: from matplotlib.pyplot import * figure(figsize=(24,6)) subplot(131) ylabel("test") plot([1,2,3], label="test1") plot([3,2,1],

我正在处理窗口中的几个子窗口。在绘制完之后,它看起来很棒,问题是当我手动重新打开窗口时。子窗口无法正确适应窗口的新大小。我怎样才能解决这个问题

绘图后的窗口,看起来很棒:

手动调整窗口大小后,它看起来很糟糕:

编辑:

一个简单的演示代码:

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

如您所见,绘图后的绘图效果良好。但是,当您开始水平收缩绘图时,绘图和绘图之间的空间会越来越小。最后,标签在其他图上,因为没有空间放置它们。我需要知道如何设置整个绘图变得更小,为标签留出空间。

可能不是我问题的答案,但它解决了我的问题:

创建图形后,将调整大小事件连接到eventhandler:
cid=fig.canvas.mpl\u connect('resize\u event',onresize)


正如Wicket所说,我只是一次又一次地调用
tight_layout()
,但会自动调用。

请提供代码以重复这种情况。代码由4个文件组成。。。把它贴在这里太复杂了。在接下来的几个小时里,我将发布一个具有相同问题的eaysier代码…好吧,发布了一个演示代码,我认为它演示了我的问题看起来像是一个大小调整+纵横比的问题。当您使窗口变窄时,也会使其变短。请尝试在交互模式下运行它,然后每次调整它的大小并且对它不满意时,您都可以使用
tight\u layout()
来正确地重新定位标签。这不是一个真正的解决方案,但很有效。天哪!这是金子!谢谢
def onresize(event):
    plt.tight_layout()