Cambiar el tamaño de la figura en Matplotlib

C

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.

 

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