【问题标题】: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)))
    

    【讨论】:

      猜你喜欢
      • 2014-10-03
      • 1970-01-01
      • 2015-05-21
      • 2020-07-16
      • 2011-01-14
      • 2017-12-31
      • 1970-01-01
      • 1970-01-01
      • 2019-04-05
      相关资源
      最近更新 更多