我试图在tkinter窗口中显示4个或更多图表,但它们放错了位置,我想我还需要一个滚动条。代码如下:
root = tk.Tk()
figure1 = plt.Figure(figsize=(2,2), dpi=100)
ax1 = figure1.add_subplot(221)
ax1.plot(df1['year'], df1['personal'], color='red')
scatter1 = FigureCanvasTkAgg(figure1, root)
scatter1.get_tk_widget().pack()
ax1.legend([''])
ax1.set_xlabel('valeur de personals')
ax1.set_title('ev de personal ')
figure2 = plt.Figure(figsize=(2,2), dpi=100)
ax2 = figure2.add_subplot(222)
scatter2 = FigureCanvasTkAgg(figure2, root)
scatter2.get_tk_widget().pack(side=tk.RIGHT)
ax2.legend([''])
ax2.set_xlabel('valeur BSA')
ax2.set_title('Evolutiion des valeurs BSA depuis 1990 ')
ax2.plot(df2['year'], df2['value'], color='red')
figure3 = plt.Figure(figsize=(2,2), dpi=100)
ax3 = figure3.add_subplot(223)
#the same code for the reste
root.mainloop()
但结果是:
1条答案
按热度按时间zz2j4svz1#
我看到两个问题
第一:
创建4个画布
FigureCanvasTkAgg
在你使用的每一块画布上add_subplot(222)
为4个绘图(2x2)创建位置,但在每个画布中仅使用一个位置。你只能用一块画布。第二:
你需要
pack(fill="both", expand=True)
调整绘图大小并使用窗口中的所有空间。你也使用
pack(side=tk.RIGHT)
这会造成布局上的问题最小工作代码
结果:
编辑:
与4个画布相同-并且每个画布使用
add_plot('111')
-但这次我用grid()
而不是pack()
组织起来。它需要
columnconfigure
,rowconfigure
调整单元格大小并使用窗口中的所有空间。以及grid( ..., sticky='news')
将画布调整为单元格大小。结果:
现在,地块的利润率越来越小。