He usado matplotlib para trazar algunos resultados experimentales (lo discutimos aquí: recorrer archivos y trazar . Sin embargo, guardar la imagen haciendo clic derecho a la imagen da imágenes de muy mala calidad / baja resolución.
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()
Gráfico de ejemplo de lo que estoy buscando: gráfico de ejemplo
python
matplotlib
esilik
fuente
fuente
plt.savefig(fname + 'Graph1.png')
yplt.savefig(fname + 'Graph2.png')
use
plt.figure(dpi=1200)
antes de todoplt.plot...
y al final,plt.savefig(...
consulte: http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.figure y http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.savefigfuente
Puede guardar su gráfico como svg para una calidad sin pérdidas:
import matplotlib.pylab as plt x = range(10) plt.figure() plt.plot(x,x) plt.savefig("graph.svg")
fuente
plt.savefig("graph.pdf")
que también no tiene pérdidasPara los futuros lectores que encontraron esta pregunta mientras intentaban guardar imágenes de alta resolución de matplotlib como yo, probé algunas de las respuestas anteriores y en otros lugares, y las resumí aquí.
Mejor resultado :
plt.savefig('filename.pdf')
y luego convertir este pdf a png en la línea de comando para que pueda usarlo en powerpoint:
pdftoppm -png -r 300 filename.pdf filename
Prueba menos exitosa # 1 :
plt.savefig('filename.png', dpi=300)
Esto guarda la imagen a una resolución un poco más alta que la normal, pero no es lo suficientemente alta para la publicación o algunas presentaciones. El uso de un valor de ppp de hasta 2000 aún produce imágenes borrosas cuando se ve de cerca.
Prueba menos exitosa # 2 :
plt.savefig('filename.pdf')
Esto no se puede abrir en Microsoft Office Professional Plus 2016 (por lo tanto, no en PowerPoint), lo mismo con Google Slides.
Prueba menos exitosa # 3 :
plt.savefig('filename.svg')
Esto tampoco se puede abrir en PowerPoint o Google Slides, con el mismo problema que el anterior.
Prueba menos exitosa # 4 :
plt.savefig('filename.pdf')
y luego convertir a png en la línea de comando:
convert -density 300 filename.pdf filename.png
pero esto todavía es demasiado borroso cuando se ve de cerca.
Prueba menos exitosa # 5 :
plt.savefig('filename.pdf')
y abrir en GIMP, y exportar como png de alta calidad (aumentó el tamaño del archivo de ~ 100 KB a ~ 75 MB)
Prueba menos exitosa # 6 :
plt.savefig('filename.pdf')
y luego convertir a jpeg en la línea de comando:
pdfimages -j filename.pdf filename
Esto no produjo ningún error, pero no produjo una salida en Ubuntu incluso después de cambiar varios parámetros.
fuente
Para guardar el gráfico:
matplotlib.rcParams['savefig.dpi'] = 300
Para mostrar el gráfico cuando usa
plt.show()
:matplotlib.rcParams["figure.dpi"] = 100
Solo agrégalos en la parte superior
fuente
Al final de su ciclo for () , puede usar la
savefig()
función en lugar de plt.show () y establecer el nombre, dpi y formato de su figura.Por ejemplo, el formato de 1000 dpi y eps es de buena calidad, y si desea guardar todas las imágenes en la carpeta ./ con los nombres 'Sample1.eps', 'Sample2.eps', etc., simplemente puede agregar el siguiente código:
for fname in glob("./*.txt"): # Your previous code goes here [...] plt.savefig("./{}.eps".format(fname), bbox_inches='tight', format='eps', dpi=1000)
fuente