python: имя выходного файла matplotlib - PullRequest
0 голосов
/ 07 мая 2020
import sys
import matplotlib.pyplot as plt
from numpy import *

filename = sys.argv[1]
num_, bin_, count_, err_ = loadtxt(filename, unpack=True)

plt.step(bin_,count_, where='mid', color='red')
plt.yscale('log')

plt.savefig(filename+'.pdf')
plt.show()

внутри приведенного выше кода, я хочу сохранить выходной график с тем же именем для имени файла (== sys.argv [1]).

Следующее не работает.

plt.savefig(filename+'.pdf')

Кто-нибудь может предложить подходящий вариант?

Ответы [ 2 ]

0 голосов
/ 07 мая 2020

попробуйте использовать метод str replace.

>>> "Hello World".replace("World", "Anatoli")
'Hello Anatoli'

в вашем случае:

plt.savefig(filename.replace(".py", ".pdf")

Это примет имя вашего файла, но удалит .py и напишет вместо него .pdf, что вам и нужно.

0 голосов
/ 07 мая 2020

From https://matplotlib.org/3.1.1/api/_as_gen/matplotlib.pyplot.savefig.html:

Если формат не установлен, то выходной формат выводится из расширения fname, если оно есть, и из rcParams ["savefig .format "] = 'png' иначе. Если формат установлен, он определяет выходной формат.

А также:

формат: str Формат файла, например, 'png', 'pdf', 'svg ', ... Поведение, когда это не установлено, задокументировано под fname.

:)

...