图CanvasTkAgg的tight_layout()

时间:2016-11-10 09:14:50

标签: matplotlib tkinter-canvas

我需要在画布中添加2个子图。我试图使用FigureCanvasTkAgg,因为这些图需要是3-D交互式。 canvas / FigureCanvasTkAgg中是否有相同的tight_layout功能?尝试过FigureCanvasTkAgg.tight_layout()并给出错误..

f = Figure(figsize=(5,3), dpi=100)

a = f.add_subplot(121)
a.plot([1,2,3,4,5,6,7,8],[5,6,1,3,8,9,3,5])

a1 = f.add_subplot(122)
a1.plot([1,2,3,4,5,6,7,8],[5,6,1,3,8,9,3,5])

canvas = FigureCanvasTkAgg(f, self)
canvas.show()
canvas.tight_layout()
canvas.get_tk_widget().grid(row=20,column=6,sticky=W)

3 个答案:

答案 0 :(得分:1)

使用fig = Figure(tight_layout=True)解决了@James Brown提到的问题,在我的案例中,该数据显示在边缘(Windows 10,Python 3.8.3,Matplotlib 3.2.2)。

答案 1 :(得分:0)

了解一些试验。 tight_layout()与图而不是后端相关联。

在canvas声明之前插入的f.tight_layout()解决了问题

答案 2 :(得分:0)

我想设置自己的设置,因为tight_layout将其移到框架的边缘。我使用工具栏来获取我的数字并将其放置在画布之前。

f.subplots_adjust(左= 0.06,底部= 0.16,右= 0.90,顶部= 0.92,wspace = 0.21,hspace = 0.67)