Python 如何在tkinter画布的某个区域嵌入matplotlib图形?

Python 如何在tkinter画布的某个区域嵌入matplotlib图形?,python,matplotlib,tkinter,canvas,Python,Matplotlib,Tkinter,Canvas,您好,我正在尝试将matplotlib图形嵌入到画布的特定区域,在尝试使工具栏正常工作时遇到了一些问题。以下是我到目前为止的情况: 导入matplotlib 将matplotlib.pyplot作为plt导入 matplotlib.use(“TkAgg”) 从matplotlib.backends.backend_tkagg导入图CAVASTKAGG,导航工具栏2TK 将tkinter作为tk导入 def on_closing(): root.quit() root.destroy() root

您好,我正在尝试将matplotlib图形嵌入到画布的特定区域,在尝试使工具栏正常工作时遇到了一些问题。以下是我到目前为止的情况:

导入matplotlib
将matplotlib.pyplot作为plt导入
matplotlib.use(“TkAgg”)
从matplotlib.backends.backend_tkagg导入图CAVASTKAGG,导航工具栏2TK
将tkinter作为tk导入
def on_closing():
root.quit()
root.destroy()
root=tk.tk()
协议(“WM_删除_窗口”,关闭时)
canvas=tk.canvas(根,宽度=500,高度=400,highlightthickness=0)
canvas.pack()
#创建框架
x0,y0,x1,y1=(10,10490390)
框架=传统框架(画布,宽度=x1-x0,高度=y1-y0)
窗口=画布。创建_窗口(x0,y0,anchor=“nw”,
窗=框架,宽度=x1-x0,高度=y1-y0)
#创建matplotlib图形
图,ax=plt.子批次()
斧头图([1,2,3,4,5,6,7,8],[5,6,1,3,8,9,3,5])
ax.set(xlabel='something',ylabel='something',
title='something')
ax.grid()
canvas_matplotlib=FigureCanvasTkAgg(图,框架)
canvas_matplotlib.draw()
canvas_matplotlib.get_tk_widget().pack(side=tk.BOTTOM,fill=tk.BOTH,expand=True)
toolbar=NavigationToolbar2Tk(画布_matplotlib,框架)
toolbar.update()
canvas\u matplotlib.\u tkcanvas.pack(side=tk.TOP,fill=tk.BOTH,expand=True)
root.mainloop()
我不明白为什么工具栏不会出现

编辑:


我想要的是绘图和工具栏完全占据定义的画布区域。

您的
画布没有展开,并且在
画布中设置了高度限制。创建窗口
。使用
canvas.pack(fill=“y”,expand=True)
,并删除
create\u窗口上的高度。我明白了,因此打印的大小不能根据小部件的父项设置,如果我想放置打印,更改大小的唯一方法是使用matplotlib figsize?基本上,我想让情节完全适合画布区域。