【问题标题】:Python - matplotlib autoincrement save figure optionPython - matplotlib 自动增量保存图形选项
【发布时间】:2018-12-06 20:46:38
【问题描述】:
我有一个愚蠢但很烦人的 matplotlib 问题。我不断生成图形并使用 matplotlib 弹出图形显示上的保存按钮将它们保存到磁盘。该窗口的默认行为用于自动增加要保存的文件的默认名称的索引,例如当已经保存了 119 个其他图形时,选项将是保存“Figure_120.png”。
但最新版本的 matplotlib 默认不这样做,每次我这样做时我都必须编辑和重命名图形。难道我做错了什么?以及 matplotlib 是如何一直读取默认输出目录的内容来知道如何索引默认值的?
【问题讨论】:
-
你没有做错什么。这是在PR #10864 中故意更改的。随意在这个帖子中抱怨它。
-
如果我正确理解here 所写的内容,现在使用图形画布标题(使用figure.Figure.canvas.set_window_title())猜测默认名称,因此也许解决方法是在之前的代码中设置它来电show()?
标签:
python
matplotlib
save
【解决方案1】:
您可以将图形保存在目录中。
目录将由当前日期和数字与当前时间重命名。
对应代码:
import os.path
import os, errno
cur_Date = time.strftime("%Y-%m-%d")
cur_Time = time.strftime("%H-%M")
%create directory if it did not exist
try:
os.makedirs(cur_Date)
except OSError as e:
if e.errno != errno.EEXIST:
raise
# your figure creation lines ....
# save the figure to file
fig.savefig(cur_Time+'.png')
【解决方案2】:
因此,Thomas Kuhn 的建议有点 hacky - 但它有效:当您点击保存框时 - 它会将图形保存为标题。我添加了一个随机数,这是完整的解决方案:
figure = plt.figure()
figure.canvas.set_window_title("Fig_"+str(np.random.randint(1E8)))