Ich habe Matplotlib für das Plotten einiger experimenteller Ergebnisse verwendet (hier besprochen: Durchlaufen von Dateien und Plotten . Wenn Sie das Bild jedoch durch Klicken mit der rechten Maustaste auf das Bild speichern), erhalten Sie eine sehr schlechte Bildqualität.
from glob import glob
import numpy as np
import matplotlib.pyplot as plt
import matplotlib as mpl
# loop over all files in the current directory ending with .txt
for fname in glob("./*.txt"):
# read file, skip header (1 line) and unpack into 3 variables
WL, ABS, T = np.genfromtxt(fname, skip_header=1, unpack=True)
# first plot
plt.plot(WL, T, label='BN', color='blue')
plt.xlabel('Wavelength (nm)')
plt.xlim(200,1000)
plt.ylim(0,100)
plt.ylabel('Transmittance, %')
mpl.rcParams.update({'font.size': 14})
#plt.legend(loc='lower center')
plt.title('')
plt.show()
plt.clf()
# second plot
plt.plot(WL, ABS, label='BN', color='red')
plt.xlabel('Wavelength (nm)')
plt.xlim(200,1000)
plt.ylabel('Absorbance, A')
mpl.rcParams.update({'font.size': 14})
#plt.legend()
plt.title('')
plt.show()
plt.clf()
Beispielgrafik von was ich suche: Beispielgrafik
Sie können savefig()
zum Exportieren in eine Bilddatei verwenden:
plt.savefig('filename.png')
Darüber hinaus können Sie das Argument dpi
mit einem Skalarwert angeben.
plt.savefig('filename.png', dpi=300)
Sie können Ihre Grafik als svg für eine verlustfreie Qualität speichern:
import matplotlib.pylab as plt
x = range(10)
plt.figure()
plt.plot(x,x)
plt.savefig("graph.svg")
verwenden Sie plt.figure(dpi=1200)
vor allen Ihren plt.plot...
und am Ende verwenden Sie plt.savefig(...
: http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.figure und http : //matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.savefig
Am Ende Ihrer for () - Schleife können Sie anstelle von plt.show () die Funktion savefig()
verwenden und den Namen, das dpi und das Format Ihrer Figur einstellen.
Z.B. 1000 dpi und das EPS-Format sind eine gute Qualität, und wenn Sie jedes Bild im Ordner ./ mit den Namen 'Sample1.eps', 'Sample2.eps' usw. speichern möchten, fügen Sie einfach folgenden Code hinzu :
for fname in glob("./*.txt"):
# Your previous code goes here
[...]
plt.savefig("./{}.eps".format(fname), bbox_inches='tight', format='eps', dpi=1000)