如何使用与filename.py相同的文件名保存matplotlib图

时间:2017-06-06 07:17:42

标签: python matplotlib

我从thisfilename.py运行Matplotlib绘图的python代码。是否存在存储此文件名而没有文件路径的变量?因为我想将这个图保存为thisfilename.png而不是每次都输入这样的文件名吗?

if __name__ == '__main__':
  ...
  plt.savefig('thisfilename.png')

我想将最后一行更改为

  # pseudocode
  plt.savefig(variable, '.png')

我测试了

  plt.savefig(__file__, ".png")

保存的文件名有.py,文件路径和.png之前的空格我不想要

3 个答案:

答案 0 :(得分:1)

import inspect
import matplotlib.pyplot as plt
import numpy as np

frame = inspect.currentframe()
path = inspect.getfile(frame)
fname = path.split('.')[0]

t = np.linspace(0,1, 1000)
plt.plot(t, np.sin(2*np.pi*t*4))
plt.savefig(fname + ".jpg")

答案 1 :(得分:1)

要保存与python文件同名的图形,请替换" .py" by" .png"并删除路径,我会使用:

plt.gcf().savefig(__file__.rstrip('.py').split('/')[-1] + ".png")

rstrip删除" .py"从文件字符串的右侧, 拆分方法将链条分开,每个" /"并且[-1]仅保留列表的最后一项 +可用于连接字符串

答案 2 :(得分:1)

您可以使用Python的splitext()__file__分成两部分,然后添加所需的扩展名,如下所示:

import os

output_filename = os.path.splitext(__file__)[0] + '.png'
plt.savefig(output_filename)