我需要在画布中添加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)
答案 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)