Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 滚动嵌入tkinter中的matplotlib图形_Python_Matplotlib_Tkinter - Fatal编程技术网

Python 滚动嵌入tkinter中的matplotlib图形

Python 滚动嵌入tkinter中的matplotlib图形,python,matplotlib,tkinter,Python,Matplotlib,Tkinter,我试图在一个垂直滚动的tkinter窗口中显示matplotlib子窗口的m x n网格。我已经读过多个类似的问题,但我仍然遇到同样的问题: 尽管指定了图形大小,但我无法使子地块保持其(通常)方形纵横比。Matplotlib不断调整图形(或子地块?)的大小以适应屏幕大小,并防止其向垂直方向延伸,尽管其大小足以容纳所有子地块 本MWE旨在展示以下问题: 导入tkinter 从tkinter进口* 从matplotlib.backends.backend_tkagg导入图CAVASTKAGG,导航工

我试图在一个垂直滚动的tkinter窗口中显示matplotlib子窗口的m x n网格。我已经读过多个类似的问题,但我仍然遇到同样的问题:

尽管指定了图形大小,但我无法使子地块保持其(通常)方形纵横比。Matplotlib不断调整图形(或子地块?)的大小以适应屏幕大小,并防止其向垂直方向延伸,尽管其大小足以容纳所有子地块

本MWE旨在展示以下问题:

导入tkinter
从tkinter进口*
从matplotlib.backends.backend_tkagg导入图CAVASTKAGG,导航工具栏2TK
从matplotlib.figure导入图形
将numpy作为np导入
root=tkinter.Tk()
root.wm_标题(“嵌入Tk”)
图=图(figsize=(5,80),dpi=400)
ax=图子批次(9,4)
对于ax.flatte()中的i:
i、 绘图(np.随机.随机样本(8))
canvas=FigureCanvasTkAgg(fig,master=root)#一个tk.DrawingArea。
canvas.draw()
scroll\u y=Scrollbar(canvas.get\u tk\u widget(),orient=“vertical”,command=canvas.get\u tk\u widget().yview)
滚动y.pack(侧边为“右”,填充为“y”)
canvas.get\u tk\u widget().configure(yscrolllCommand=scroll\u y.set,scrollregion=canvas.get\u tk\u widget().bbox(“全部”))
工具栏=导航工具栏2TK(画布,根)
toolbar.update()
canvas.get\u tk\u widget().pack(side=tkinter.TOP,fill=tkinter.BOTH,expand=1)
tkinter.mainloop()
我们的目标是或多或少地重现这个PyQt5实现的行为——仅在Tkinter中:

提前谢谢