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.

    Te puede interesar:Agregar leyenda a la figura en 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.

    Te puede interesar:Diagrama de dispersión de Matplotlib: tutorial y ejemplos

    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:

    Te puede interesar:Cambiar la frecuencia de ticks en Matplotlib
    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:

    Te puede interesar:Análisis estadístico de hipótesis en Python con ANOVAs, Chi-cuadrado y correlación de Pearson
    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.

    Te puede interesar:Patrones de diseño estructural en Python

    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.

    Te puede interesar:Ordenar por cubos en Python

    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.

    Te puede interesar:Diagrama de dispersión de Seaborn – Tutorial y ejemplos

    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':

    Te puede interesar:Rotar etiquetas de eje en Matplotlib
    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ón

    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.

     

    Rate this post

    Etiquetas: