Guardar trazado como imagen con Matplotlib

     

    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.

     

    Etiquetas:

    Deja una respuesta

    Tu direcci贸n de correo electr贸nico no ser谩 publicada. Los campos obligatorios est谩n marcados con *