如何更改Python中“保存图形”的默认路径?

17 投票
2 回答
9506 浏览
提问于 2025-05-10 15:43

我有一段Python代码用来创建一个图形。在用plt.show()显示图形后,我想保存这个图形。
为了避免图形的比例、分辨率等被搞乱,我不想在代码里使用savefig这个命令。相反,我想用图形窗口里的“保存图形”按钮来保存。
但是默认情况下,它会把我的家目录作为保存位置。我希望保存时能自动选择执行代码的目录。
我该怎么做才能把这个窗口的默认保存路径改成当前文件夹(或者其他地方)呢?

我在开头尝试了这个命令,来自 改变目录到Python脚本所在的目录,但没有帮助,尽管它能正确显示文件名:

os.chdir(os.path.dirname(__file__))

相关文章:

  • 暂无相关问题
暂无标签

2 个回答

0

如果你不想写代码,可以创建一个叫做 matplotlibrc 的文件,里面写上以下内容:

savefig.directory:

这样做会把 savefig.directory 的值设置为空,这样它就会默认保存到当前的工作目录。

你可以把这个 matplotlib 文件放在当前的工作目录里,或者放在文档中提到的其他位置。比如在Linux系统上,它应该放在 .config/matplotlib/ 这个文件夹里(如果你那里没有 matplotlibrc 文件也不用担心,我的电脑上也没有)。

19

看起来你可以通过修改默认设置文件 matplotlibrc 来实现这个功能,具体的指导可以查看 http://matplotlib.org/users/customizing.html,其中重要的内容在保存图像的参数部分:

# the default savefig params can be different from the display params

...

savefig.directory   : ~        # default directory in savefig dialog box, 
                               # leave empty to always use current working directory

似乎 这个功能是在 matplotlib 1.3 版本中引入的。我想你可以通过在脚本的顶部设置,

matplotlib as mpl
mpl.rcParams["savefig.directory"] = os.chdir(os.path.dirname(__file__))

或者通过修改 matplotlibrc 文件来实现。这样对话框就会默认使用当前工作目录,而不是脚本所在的位置(感谢 jjcf89 的帮助)

matplotlib as mpl 
mpl.rcParams["savefig.directory"] = ""

撰写回答