Python Matplotlib figure.savefig()tkinter

Python Matplotlib figure.savefig()tkinter,python,matplotlib,tkinter,Python,Matplotlib,Tkinter,我已根据成功地将matplotlib绘图嵌入到tkinter中,但我也想保存绘图。我该怎么做?我尝试了figure.savefig(如下所示);我认为这会从以下方面起作用: #/usr/bin/env python 导入matplotlib matplotlib.use('TkAgg') 来自numpy import arange,sin,pi 从matplotlib.backends.backend_tkagg导入图CAVASTKAGG,导航工具栏2TKAGG 从matplotlib.figu

我已根据成功地将matplotlib绘图嵌入到tkinter中,但我也想保存绘图。我该怎么做?我尝试了
figure.savefig
(如下所示);我认为这会从以下方面起作用:

#/usr/bin/env python
导入matplotlib
matplotlib.use('TkAgg')
来自numpy import arange,sin,pi
从matplotlib.backends.backend_tkagg导入图CAVASTKAGG,导航工具栏2TKAGG
从matplotlib.figure导入图形
导入系统
如果系统版本信息[0]<3:
将Tkinter作为Tk导入
其他:
将tkinter作为Tk导入
def销毁(e):系统退出()
root=Tk.Tk()
root.wm_标题(“嵌入TK”)
#root.bind(“,destroy)
f=图(figsize=(5,4),dpi=100)
a=f.add_子批次(111)
t=arange(0.0,3.0,0.01)
s=sin(2*pi*t)
a、 图(t,s)
a、 设置标题(“Tk嵌入”)
a、 设置标签(“X轴标签”)
a、 设置标签(“Y标签”)
f、 savefig('hello.png')
#拉文加地区
canvas=FigureCanvasTkAgg(f,master=root)
canvas.show()
canvas.get_tk_widget().pack(side=tk.TOP,fill=tk.BOTH,expand=1)
#toolbar=NavigationToolbar2TkAgg(画布,根)
#toolbar.update()
canvas.\u tkcanvas.pack(side=Tk.TOP,fill=Tk.BOTH,expand=1)
button=Tk.button(master=root,text='Quit',command=sys.exit)
按钮组件(侧面=底部)
Tk.mainloop()

这个图形需要一个图形画布来绘制。换句话说,在FigureCanvas建立之前,不要调用savefig

# a tk.DrawingArea
canvas = FigureCanvasTkAgg(f, master=root)
canvas.show()
canvas.get_tk_widget().pack(side=Tk.TOP, fill=Tk.BOTH, expand=1)
f.savefig('hello.png') 

调用
savefig
时发生了什么?它抛出了一个错误吗?是的,但我不确定如何处理它:
文件/usr/lib/python3/dist packages/matplotlib/figure.py”,第1371行,在savefig self.canvas.print\u figure(*args,**kwargs)AttributeError:“非类型”对象没有属性“print\u figure”
# a tk.DrawingArea
canvas = FigureCanvasTkAgg(f, master=root)
canvas.show()
canvas.get_tk_widget().pack(side=Tk.TOP, fill=Tk.BOTH, expand=1)
f.savefig('hello.png')