如何设置子图的调整大小行为?

时间:2014-05-12 08:24:32

标签: matplotlib resize subplot

我正在窗口中处理几个子图。在绘图之后它看起来很棒,问题是当我手动重新调整窗口时。子图不能正确适应窗口的新大小。我该如何解决这个问题?

绘图后的窗口,看起来很棒: enter image description here

手动调整大小后的

窗口看起来很糟糕: enter image description here

编辑:

简单的演示代码:

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

如你所见,情节看起来很好。但是当你开始水平缩小绘图时,绘图和绘图之间的空间会越来越小。最后,勾选标签位于其他地块上,因为它们没有空间。我需要知道如何设置整个绘图变小,为标签留出空间。

1 个答案:

答案 0 :(得分:3)

也许不完全是我的问题的答案,但它解决了我的问题:

创建图形后,将resize-event连接到eventhandler:
cid = fig.canvas.mpl_connect('resize_event', onresize)

def onresize(event):
    plt.tight_layout()

正如Wicket所说,我只是一次又一次地呼叫tight_layout(),但却是自动的。