J'ai utilisé matplotlib pour tracer des résultats expérimentaux (expliqué ici: Boucle sur des fichiers et traçage . Cependant, enregistrer l'image en cliquant à droite sur l'image donne des images de très mauvaise qualité/basse résolution.
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()
Exemple de graphique de ce que je recherche: exemple de graphique
Vous pouvez utiliser savefig()
pour exporter dans un fichier image:
plt.savefig('filename.png')
De plus, vous pouvez spécifier l'argument dpi
avec une valeur scalaire, par exemple:
plt.savefig('filename.png', dpi=300)
Vous pouvez enregistrer votre graphique au format svg pour une qualité sans perte:
import matplotlib.pylab as plt
x = range(10)
plt.figure()
plt.plot(x,x)
plt.savefig("graph.svg")
utilisez plt.figure(dpi=1200)
avant tout votre plt.plot...
et à la fin utilisez plt.savefig(...
voir: http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.figure et http: // matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.savefig
À la fin de votre boucle pour () , vous pouvez utiliser la fonction savefig()
au lieu de plt.show () et définir le nom, la résolution et le format de votre figure.
Par exemple. Le format 1000 dpi et le format eps sont de bonne qualité. Si vous souhaitez enregistrer chaque image dans le dossier ./ avec les noms 'Sample1.eps', 'Sample2.eps', etc., vous pouvez simplement ajouter le code suivant. :
for fname in glob("./*.txt"):
# Your previous code goes here
[...]
plt.savefig("./{}.eps".format(fname), bbox_inches='tight', format='eps', dpi=1000)