Introducción
Matplotlib es una de las bibliotecas de visualización de datos más utilizadas en Python. Los gráficos y visualizaciones de Matplotlib se comparten comúnmente con otros, ya sea a través de documentos o en línea.
En este artículo, veremos cómo guardar un diagrama / gráfico como un archivo de imagen usando Matplotlib.
Te puede interesar:Agregar leyenda a la figura en MatplotlibCrear una parcela
Primero creemos una trama simple:
import matplotlib.pyplot as plt
import numpy as np
x = np.arange(0, 10, 0.1)
y = np.sin(x)
plt.plot(x, y)
plt.show()
Aquí, hemos trazado una función seno, comenzando en 0
y termina en 10
con un paso de 0.1
. Ejecutar este código produce:
Ahora, echemos un vistazo a cómo podemos guardar esta figura como una imagen.
Te puede interesar:Diagrama de dispersión de Matplotlib: tutorial y ejemplosGuardar trazado como imagen en Matplotlib
En el ejemplo anterior, hemos generado el gráfico a través del plot()
función, pasando los datos que nos gustaría visualizar.
Este gráfico se genera, pero no se nos muestra, a menos que llamemos al show()
función. los show()
función, como su nombre indica, muestra el gráfico generado al usuario en una ventana.
Una vez generada, también podemos guardar esta figura / gráfico como un archivo, usando el savefig()
función:
import matplotlib.pyplot as plt
import numpy as np
x = np.arange(0, 10, 0.1)
y = np.sin(x)
plt.plot(x, y)
plt.savefig('saved_figure.png')
Ahora, cuando ejecutamos el código, en lugar de que aparezca una ventana con el gráfico, tenemos un archivo (saved_figure.png
) en el directorio de nuestro proyecto.
Este archivo contiene exactamente la misma imagen que se nos mostrará en la ventana:
Vale la pena señalar que el savefig()
La función no es exclusiva de plt
ejemplo. También puede usarlo en un Figure
objeto:
import matplotlib.pyplot as plt
import numpy as np
fig = plt.figure()
x = np.arange(0, 10, 0.1)
y = np.sin(x)
plt.plot(x, y)
fig.savefig('saved_figure.png')
los savefig()
la función tiene un requisito filename
argumento. Aquí, hemos especificado el nombre del archivo y el formato.
Además, acepta otras opciones, como dpi
, transparent
, bbox_inches
, quality
etc.
Repasaremos algunas opciones populares en las secciones siguientes.
Te puede interesar:Patrones de diseño estructural en PythonConfiguración de DPI de la imagen
El parámetro DPI define el número de puntos (píxeles) por pulgada. Esta es esencialmente la resolución de la imagen que estamos produciendo. Probemos un par de opciones diferentes:
import matplotlib.pyplot as plt
import numpy as np
fig = plt.figure()
x = np.arange(0, 10, 0.1)
y = np.sin(x)
plt.plot(x, y)
fig.savefig('saved_figure-50pi.png', dpi = 50)
fig.savefig('saved_figure-100dpi.png', dpi = 100)
fig.savefig('saved_figure-1000dpi.png', dpi = 1000)
Esto da como resultado tres nuevos archivos de imagen en nuestra máquina local, cada uno con un DPI diferente:
El valor predeterminado es 100
.
Guardar imagen transparente con Matplotlib
los transparent
El argumento se puede utilizar para crear una trama con un fondo transparente. Esto es útil si usará la imagen de la trama en una presentación, en un papel o si desea presentarla en un entorno de diseño personalizado:
import matplotlib.pyplot as plt
import numpy as np
x = np.arange(0, 10, 0.1)
y = np.sin(x)
plt.plot(x, y)
plt.savefig('saved_figure.png', transparent=True)
Si ponemos esta imagen sobre un fondo oscuro, resultará en:
Cambio de colores de trazado
Puede cambiar el color de la cara utilizando el facecolor
argumento. Acepta un color
y por defecto es white
.
Vamos a cambiarlo a red
:
import matplotlib.pyplot as plt
import numpy as np
x = np.arange(0, 10, 0.1)
y = np.sin(x)
plt.plot(x, y)
plt.savefig('saved_figure-colored.png', facecolor="red")
Esto resulta en:
Configuración del cuadro del borde de la imagen
los bbox_inches
El argumento acepta una cadena y especifica el borde alrededor del cuadro que estamos trazando. Si quisiéramos configurarlo para que sea tight
, es decir, para recortar alrededor del cuadro tanto como sea posible, podemos establecer el bbox_inches
argumento para 'tight'
:
import matplotlib.pyplot as plt
import numpy as np
x = np.arange(0, 10, 0.1)
y = np.sin(x)
plt.plot(x, y)
plt.savefig('saved_figure-tight.png', bbox_inches="tight", facecolor="red")
Esto da como resultado una caja bien empaquetada. Esto es más fácil de visualizar si coloreamos la cara con un color diferente como referencia:
Conclusión
En este tutorial, hemos repasado varias formas de guardar el gráfico como un archivo de imagen usando Matplotlib.
Si está interesado en la visualización de datos y no sabe por dónde empezar, asegúrese de consultar nuestro libro sobre Visualización de datos en Python.
Te puede interesar:Matplotlib: Cambiar el tamaño del marcador del gráfico de dispersiónData Visualization in Python, un libro para desarrolladores de Python principiantes e intermedios, lo guiará a través de la manipulación simple de datos con Pandas, cubrirá bibliotecas de trazado centrales como Matplotlib y Seaborn, y le mostrará cómo aprovechar las bibliotecas declarativas y experimentales como Altair.
Visualización de datos en Python
¡Comprenda mejor sus datos con visualizaciones! Con 340 páginas, aprenderá los entresijos de la visualización de datos en Python con bibliotecas populares como Matplotlib, Seaborn, Bokeh y más.