Por defecto la resolución con la que se crean las figuras en Matplotlib es de 72 puntos por pulgada (ppp), el valor estándar de las pantallas tradicionales. Aunque esta configuración es insuficiente en el caso de que se desee imprimir la gráfica o esta se visualice en una pantalla HiDPI o Retina. A la hora de trabajar con Jupyter se puede cambiar la configuración para doblar la resolución, aumentado esta hasta los 144 ppp. Pero en el caso de que el destino de las figuras sea un documento impreso, es necesario aumentar aún más la resolución de estas. Veamos cómo se pueden crear archivos con figuras de alta resolución en Matplotlib.
Guardar las figuras creadas con savefig()
Una vez creada una figura en Matplotlib, el método savefig()
permite guardar esta es un archivo. Para lo que solamente hay que indicar el nombre del documento en el que se desea guardar la gráfica. Usando el método la extensión del archivo para seleccionar el formato, aunque también se puede indicar de forma explícita mediante la propiedad format
.
Como se ha comentado anteriormente la resolución con la que se guardan las imágenes por defecto es de 72 ppp. Para fijar otra resolución solamente se tiene que indicar el valor deseado mediante la propiedad dpi
. Así, se puede generar la misma figura con 72, 300 y 600 ppp tanto en formato PNG como JPG con el siguiente código.
import numpy as np import matplotlib.pyplot as plt x = np.linspace(0, np.pi, 200) y = np.cos(3 * np.pi * x) plt.plot(x, y, '--r') plt.xlabel('Tiempo') plt.ylabel('Amplitud') # Figuras en formato PNG plt.savefig("figura_base.png") plt.savefig("figura_300dpi.png", dpi=300) plt.savefig("figura_600dpi.png", dpi=600) # Figuras en formato JPG plt.savefig("figura_base.jpg") plt.savefig("figura_300dpi.jpg", dpi=300) plt.savefig("figura_600dpi.jpg", dpi=600)
Obteniendo en el archivo figura_base.png
la siguiente imagen.
Mientras que en el archivo figura_600dpi.png
se obtiene la siguiente figura de mayor resolución.
Obviamente la calidad de esta segunda es mucho mayor que la primera. Aunque esto es algo que repercute en el tamaño del archivo, pasando en el ejemplo de 20 a 319 KB. En concreto el tamaño de los seis archivos se puede ver en la siguiente tabla.
Los valores dependen de la complejidad de la figura, por lo que para otras gráficas pueden ser tanto mayores como menores los mostrados.
Conclusiones
En esta entrada se ha visto cómo se puede usar la propiedad dpi
de savefig()
para generar archivos con figuras de alta resolución en Matplotlib. Una propiedad que es importante cuando se desea utilizar las gráficas de Matplotlib en documentos impresos.