Guardar trazado como imagen con Matplotlib

G

 

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.

Crear 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.

Guardar 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, qualityetc.

Repasaremos algunas opciones populares en las secciones siguientes.

Configuració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.

Data 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.

 

About the author

Ramiro de la Vega

Bienvenido a Pharos.sh

Soy Ramiro de la Vega, Estadounidense con raíces Españolas. Empecé a programar hace casi 20 años cuando era muy jovencito.

Espero que en mi web encuentres la inspiración y ayuda que necesitas para adentrarte en el fantástico mundo de la programación y conseguir tus objetivos por difíciles que sean.

Add comment

Sobre mi

Últimos Post

Etiquetas

Esta web utiliza cookies propias para su correcto funcionamiento. Al hacer clic en el botón Aceptar, aceptas el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Más información
Privacidad