样式文件中的 matplotlib savefig.directory 不起作用
Posted
技术标签:
【中文标题】样式文件中的 matplotlib savefig.directory 不起作用【英文标题】:matplotlib savefig.directory in style file not working 【发布时间】:2016-05-05 05:43:42 【问题描述】:我正在使用样式文件来控制我的图形保存的默认行为,并在/Users/me/.matplotlib/stylelib
目录下的save-article.mplstyle
中设置了以下内容。
savefig.directory : ./Plots/
当我只使用当前目录.
时,我会得到类似于plt.savefig("test.pdf")
的预期输出。当我使用./Plots/
时,文件没有出现。如果有帮助,我可以提供我的完整 save-article.mplstyle
文件。 Plots
目录当前存在,我可以使用 plt.savefig("./Plots/test.pdf")
之类的命令将文件保存到其中。当我在加载样式文件后检查 rcParams 时,文件中填充了正确的信息。
我该如何解决这个问题?
【问题讨论】:
./Plots/
不应该是字符串?,您是否尝试过使用绝对路径而不是相对路径?
@kikocorreoso 都不起作用。其实我在使用"./Plots/"
的时候,rcParams文件中包含"'./Plots/'"
,说明路径本身有引号,就是报错了。
嗯,你能不能在你的 mplstyle 加载后检查你的rcParams
,看看是否一切正常,import matplotlib;print(matplotlib.rcParams)
已经完成并更新了问题以反映这一点。
【参考方案1】:
如documentation中所述:
#savefig.directory : ~ # default directory in savefig dialog box,
# leave empty to always use current working directory
当您在交互模式下工作时使用此选项,当您单击交互模式的保存图标时,它将使用savefig.directory
选项中定义的目录。
最好的办法是使用os.path
或pathlib
来定义要使用的目录:
import os
basepath = os.path.abspath('Plots')
# [...other code...]
plt.savefig(os.path.join(basepath, 'figurename.pdf))
【讨论】:
以上是关于样式文件中的 matplotlib savefig.directory 不起作用的主要内容,如果未能解决你的问题,请参考以下文章
Matplotlib.savefig 忽略轴并在图像周围绘制黑色边框
使用 matplotlib 的 savefig 保存从 python pandas 生成的图(AxesSubPlot)