有没有办法将 matplotlib 图表保存为 tkinter 中的文件

Posted

技术标签:

【中文标题】有没有办法将 matplotlib 图表保存为 tkinter 中的文件【英文标题】:Is there a way of saving a matplotlib chart as a file in tkinter 【发布时间】:2021-07-16 22:37:52 【问题描述】:

我正在尝试保存我的图表,但是当我在目录中选择文件时,它显示文件名未定义

def save(): 

filename = asksaveasfile(initialfile = 'Untitled.png',defaultextension=".png",filetypes=[("All Files","*.*"),("Portable Graphics Format","*.png")])
plt.savefig(flename)

【问题讨论】:

你的代码开头有from tkinter.filedialog import asksaveasfile吗?您还知道asksaveasfileasksaveasfilename 之间存在区别吗? 是的,我确实导入了,不,我不知道现在看看它,谢谢 我看了看,是的,这正是我想要一个具有该名称的变量,所以我可以用“pls.savefig(filename)”保存图形,但是当我进行更改时,我得到了结果相同:文件名未定义 我不知道您是否注意到,但您在 plt.savefig 中使用了 flename 而不是 filename。这仅仅是问题还是问题? 是的,我得到了它的工作,谢谢你的尝试 【参考方案1】:

有一些拼写错误。您可以通过以下方式解决此问题:

def save():
    filename = asksaveasfilename(initialfile = 'Untitled.png',defaultextension=".png",filetypes=[("All Files","*.*"),("Portable Graphics Format","*.png")])
    plt.savefig(filename)

一开始你的save 函数有缩进错误。你写了asksaveasfile,应该更正为asksaveasfilename,因为我们只是要求用户写文件名,而不是在那里保存文件。最后你写了flename,它没有在程序的其他任何地方定义,但我认为你正在尝试写filename,因为我们在上一行从filename中的用户那里获得了文件名。

【讨论】:

以上是关于有没有办法将 matplotlib 图表保存为 tkinter 中的文件的主要内容,如果未能解决你的问题,请参考以下文章

Matplotlib,savefig() 的替代品以提高保存到 CString 对象时的性能?

通过 matplotlib 和 seaborn 将 pandas groupby 转换为图表

WinForm图表控件:将图表保存到文件时更改图表大小

matplotlib自动保存图表及使用颜色映射

在 matplotlib 中跨子图绘制分界线

Matplotlib的'Float'错误