Cambiar el tama帽o de la figura en Matplotlib

    Introducci贸n

    Matplotlib es una de las bibliotecas de visualizaci贸n de datos m谩s utilizadas en Python. Gran parte de la popularidad de Matplotlib proviene de sus opciones de personalizaci贸n: puede modificar casi cualquier elemento de su jerarqu铆a de objetos.

    En este tutorial, veremos c贸mo cambiar el tama帽o de una figura en Matplotlib.

    Crear una parcela

    Primero creemos un diagrama simple en una figura:

    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:

    los Figure El objeto, si no se crea expl铆citamente, se crea de forma predeterminada y contiene todos los elementos que podemos y no podemos ver. Cambiar el tama帽o del Figure a su vez, tambi茅n cambiar谩 el tama帽o de los elementos observables.

    Echemos un vistazo a c贸mo podemos cambiar el tama帽o de la figura.

    Cambiar el tama帽o de la figura en Matplotlib

    Establecer el argumento de tama帽o de figura

    En primer lugar, la forma m谩s sencilla de cambiar el tama帽o de una figura es utilizar el figsize argumento. Puede usar este argumento en la inicializaci贸n de Pyplot o en un Figure objeto.

    Primero modifiqu茅moslo durante la inicializaci贸n:

    import matplotlib.pyplot as plt
    import numpy as np
    
    x = np.arange(0, 10, 0.1)
    y = np.sin(x)
    
    plt.figure(figsize=(3, 3))
    plt.plot(x, y)
    plt.show()
    

    Aqu铆, hemos accedido al Figure instancia que se cre贸 de forma predeterminada y pas贸 la figsize argumento. Tenga en cuenta que el tama帽o se define en pulgadas, no en p铆xeles. Esto dar谩 como resultado una figura de 3 pulgadas por 3 pulgadas de tama帽o:

    Es importante establecer el tama帽o de la figura antes de graficar las variables.

    Matplotlib / PyPlot actualmente no admite tama帽os m茅tricos, sin embargo, es f谩cil escribir una funci贸n auxiliar para convertir entre los dos:

    def cm_to_inch(value):
        return value/2.54
    

    Y luego ajusta el tama帽o de la trama de esta manera:

    plt.figure(figsize=(cm_to_inch(15),cm_to_inch(10)))
    

    Esto crear铆a una parcela con un tama帽o de 15 cm por 10 cm:

    Alternativamente, si est谩 creando un Figure objeto para su parcela, puede asignar el tama帽o en ese momento:

    import matplotlib.pyplot as plt
    import numpy as np
    
    x = np.arange(0, 10, 0.1)
    y = np.sin(x)
    z = np.cos(x)
    
    fig = plt.figure(figsize=(8, 6))
    
    # Adds subplot on position 1
    ax = fig.add_subplot(121)
    # Adds subplot on position 2
    ax2 = fig.add_subplot(122)
    
    ax.plot(x, y)
    ax2.plot(x, z)
    plt.show()
    

    Aqu铆, hemos asignado expl铆citamente el valor de retorno de la figure() funci贸n a un Figure objeto. Luego, podemos agregar ejes a esta figura para crear m煤ltiples subparcelas y trazarlas.

    Hemos usado el add_subplot() funci贸n, que acepta una serie de valores num茅ricos. El primer n煤mero especifica cu谩ntas filas desea agregar a la figura, el segundo n煤mero especifica cu谩ntas columnas desea agregar y el tercer n煤mero especifica el n煤mero de la gr谩fica que desea agregar.

    Esto significa que si pasaste 111 en el add_subplots()funci贸n, se agregar铆a una nueva subparcela a la figura. Mientras tanto, si usaste los n煤meros 221, la trama resultante tendr铆a cuatro ejes con dos columnas y dos filas, y la subtrama que est谩 formando est谩 en la primera posici贸n.

    Este c贸digo da como resultado:

    Establecer la altura y el ancho de una figura en Matplotlib

    En vez de figsize argumento, tambi茅n podemos establecer la altura y el ancho de una figura. Estos se pueden hacer a trav茅s del set() funcionar con el figheight y figwidth argumento, o mediante el set_figheight() y set_figwidth() funciones.

    El primero le permite escribir una l铆nea para m煤ltiples argumentos, mientras que el segundo le proporciona un c贸digo que es m谩s legible.

    Vayamos con la segunda opci贸n:

    import matplotlib.pyplot as plt
    import numpy as np
    
    x = np.arange(0, 10, 0.1)
    y = np.sin(x)
    z = np.cos(x)
    
    fig = plt.figure()
    
    fig.set_figheight(5)
    fig.set_figwidth(10)
    
    # Adds subplot on position 1
    ax = fig.add_subplot(121)
    # Adds subplot on position 2
    ax2 = fig.add_subplot(122)
    
    ax.plot(x, y)
    ax2.plot(x, z)
    plt.show()
    

    Este c贸digo da como resultado:

    Por 煤ltimo, tambi茅n puede utilizar el set_size_inches() funcionar tambi茅n:

    fig = plt.figure()
    
    fig.set_size_inches(10, 5)
    
    # Adds subplot on position 1
    ax = fig.add_subplot(121)
    # Adds subplot on position 2
    ax2 = fig.add_subplot(122)
    
    ax.plot(x, y)
    ax2.plot(x, z)
    plt.show()
    

    Y esto funciona igual que configurar el figsize argumento o usando las dos funciones:

    Conclusi贸n

    En este tutorial, hemos repasado varias formas de cambiar el tama帽o de una figura en 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 *