01/02/2019
Matplotlib es una de las librerías de visualización de datos más populares en Python. Su versatilidad permite crear una gran variedad de gráficos, desde simples histogramas hasta complejas figuras científicas. Sin embargo, la creación de una gráfica es solo la mitad del trabajo. Para compartir o usar tu visualización posteriormente, necesitarás saber cómo guardarla en un archivo. En este artículo, profundizaremos en las diferentes maneras de guardar tus gráficas de Matplotlib, cubriendo diferentes formatos y opciones de personalización.

El método savefig()
El corazón de guardar tus gráficos en Matplotlib reside en el método savefig(). Este método es extremadamente versátil y te permite un control preciso sobre el proceso de guardado. Su sintaxis básica es sencilla:
plt.savefig('nombre_del_archivo.formato')
Donde:
- 'nombre_del_archivo' : Es el nombre que le darás a tu archivo. Puedes incluir la ruta completa si deseas guardarlo en un directorio específico. Por ejemplo,
'/ruta/a/tu/directorio/mi_grafica.png'
- '.formato' : Es la extensión del archivo que determina el formato de la imagen. Matplotlib soporta una gran variedad de formatos, incluyendo PNG, JPG, PDF, SVG, y más. La elección del formato dependerá de tus necesidades. Los formatos vectoriales (como SVG) son ideales para gráficos que se escalan sin perder calidad, mientras que los formatos rasterizados (como PNG y JPG) son más adecuados para imágenes que se verán en pantalla.
Ejemplo básico:
import matplotlib.pyplot as plt
plt.plot([1, 2, 3, 4], [5, 6, 7, 8])
plt.savefig('mi_grafica.png')
Este código creará una gráfica sencilla y la guardará como un archivo PNG llamado 'mi_grafica.png' en el mismo directorio donde se ejecuta el script.
Opciones de personalización con savefig()
El método savefig() ofrece una amplia gama de opciones para personalizar el proceso de guardado. Algunas de las más útiles incluyen:
Formato de la imagen
Como se mencionó anteriormente, puedes especificar el formato de la imagen usando la extensión del archivo. Matplotlib detecta automáticamente el formato basándose en la extensión. Sin embargo, también puedes especificar el formato explícitamente usando el argumento format
:
plt.savefig('mi_grafica', format='pdf')
Esto guardará la gráfica como un archivo PDF.
Resolución de la imagen
Para imágenes rasterizadas, la resolución es un factor crítico. Puedes controlar la resolución usando los argumentos dpi
(puntos por pulgada) y figsize
(tamaño de la figura en pulgadas):
plt.savefig('mi_grafica.png', dpi=300, figsize=(8, 6))
Este código guarda la gráfica con una resolución de 300 DPI y un tamaño de 8x6 pulgadas.
Transparencia
Puedes controlar la transparencia de la imagen usando el argumento transparent
:
plt.savefig('mi_grafica.png', transparent=True)
Esto creará una imagen PNG con fondo transparente.
Calidad de la imagen (para JPG)
Para imágenes JPG, puedes controlar la calidad de compresión usando el argumento quality
(un valor entre 0 y 100):
plt.savefig('mi_grafica.jpg', quality=95)
Un valor más alto resulta en una mejor calidad pero un tamaño de archivo mayor.
Guardar múltiples gráficos en un solo archivo
Si necesitas guardar varias gráficas en un solo archivo, puedes usar formatos como PDF. Matplotlib manejará automáticamente la creación de páginas múltiples dentro del documento PDF.
plt.figure()
plt.plot([1,2,3],[4,5,6])
plt.savefig('multiples_graficas.pdf')
plt.figure()
plt.plot([7,8,9],[10,11,12])
plt.savefig('multiples_graficas.pdf')
Este código genera dos gráficas en un solo archivo PDF.
Tabla Comparativa de Formatos
A continuación, una tabla comparativa de los formatos de imagen más comunes y sus características:
Formato | Ventajas | Desventajas |
---|---|---|
PNG | Sin perdida de calidad, soporte de transparencia | Tamaño de archivo puede ser grande |
JPG | Tamaño de archivo pequeño, ampliamente compatible | Perdida de calidad, no soporta transparencia |
Alta calidad, soporta vectores, ideal para impresión | Tamaño de archivo puede ser grande | |
SVG | Formato vectorial, escalable sin pérdida de calidad | No soportado por todos los programas |
Consultas habituales
A continuación, se responden algunas de las consultas más frecuentes sobre guardar gráficas en Matplotlib:
- ¿Cómo guardar una gráfica en alta resolución? Usa el argumento
dpi
ensavefig()
. Valores superiores a 300 DPI producen imágenes de alta resolución. - ¿Cómo guardar una gráfica con fondo transparente? Usa el argumento
transparent=True
ensavefig()
. - ¿Qué formato de archivo es el mejor para mi gráfica? Depende de tus necesidades. Para imágenes que necesitan escalarse sin perder calidad, usa SVG o PDF. Para imágenes web, PNG es una buena opción. Para imágenes con un tamaño pequeño, JPG es aceptable.
- ¿Cómo guardar múltiples gráficas en un solo archivo? Usa un formato como PDF, utilizando múltiples llamadas a
savefig()
.
Consejos adicionales
- Gestiona el tamaño de la figura: Usa el argumento
figsize
para controlar el tamaño de la figura antes de guardar. Esto te ayudará a optimizar el tamaño del archivo y la apariencia de la gráfica. - Ajusta la calidad de compresión (JPG): Ajusta el argumento
quality
para equilibrar la calidad de imagen y el tamaño del archivo. - Considera el formato vectorial (SVG o PDF): Si necesitas escalar tu gráfica sin pérdida de calidad, los formatos vectoriales son la mejor opción.
- Nombra tus archivos de manera descriptiva: Utiliza nombres de archivo claros y concisos que reflejen el contenido de la gráfica.
Con esta información, ya estás listo para guardar tus gráficas de Matplotlib con precisión y control. Experimenta con las diferentes opciones y encuentra la configuración óptima para tus necesidades.