Cambiar el tamaño de la figura en Matplotlib

En este tutorial, veremos cómo cambiar el tamaño de una figura en Matplotlib. Usaremos el argumento figsize, así como las funciones set_figheight() y set_figwidth() tanto en los ejes regulares como en las subparcelas.

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.

Creando una Parcela

Primero vamos a crear un diagrama simple en una figura:

1
2
3
4
5
6
7
8
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 terminando en 10 con un paso de 0.1. Ejecutar este código produce:

sine visualization python

El objeto Figura, 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 de la ‘Figura’ 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 figsize

En primer lugar, la forma más fácil de cambiar el tamaño de una figura es usar el argumento figsize. Puede usar este argumento en la inicialización de Pyplot o en un objeto Figura existente.

Primero modifiquémoslo durante la inicialización:

1
2
3
4
5
6
7
8
9
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 a la instancia de Figura que se creó de forma predeterminada y pasamos el argumento figsize. 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:

changing size of figure with figsize

Sin embargo, Matplotlib/PyPlot actualmente no admite tamaños métricos, es fácil escribir una función de ayuda para convertir entre los dos:

1
2
def cm_to_inch(value):
    return value/2.54

Y luego ajuste el tamaño de la trama de esta manera:

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

Esto crearía una trama con un tamaño de 15 cm por 10 cm:

changing size in cm

Alternativamente, si está creando un objeto Figura para su gráfico, puede asignar el tamaño en ese momento:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
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 función figure() a un objeto Figura. Luego, podemos agregar ejes a esta figura para crear varias subtramas y trazar sobre ellas.

Hemos usado la función add_subplot(), 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 a la función add_subplots(), se agregaría una nueva subtrama a la figura. Mientras tanto, si usaste los números 221, el gráfico resultante tendría cuatro ejes con dos columnas y dos filas, y el subgráfico que estás formando está en la primera posición.

Este código da como resultado:

adding subplots in matplotlib

Establecer la altura y el ancho de una figura en Matplotlib

En lugar del argumento figsize, también podemos establecer la altura y el ancho de una figura. Esto se puede hacer mediante la función set() con el argumento figheight y figwidth, o mediante las funciones set_figheight() y set_figwidth().

El primero le permite escribir una línea para varios argumentos, mientras que el segundo le proporciona un código que es más legible.

Vamos con la segunda opción:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
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:

setting the figure height and width in matplotlib

Finalmente, también puedes usar la función set_size_inches():

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
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 argumento figsize o usar las dos funciones:

setting figure size in inches in matplotlib

Conclusión

En este tutorial, hemos repasado varias formas de cambiar el tamaño de una figura en Matplotlib.

Si te interesa la visualización de datos y no sabes por dónde empezar, asegúrate de consultar nuestro libro sobre [Visualización de datos en Python](https://gumroad.com/l/data-visualization-in -python).

Si está interesado en Visualización de datos y no sabe por dónde empezar, asegúrese de consultar nuestro paquete de libros en [Visualización de datos en Python](https://gum.co/data-visualization -en-paquete-de-libros-de-python):

Visualización de datos en Python Descuento por tiempo limitado: 2 por 1, ¡ahorra un 50 %! ✅ Garantía de devolución de dinero de 30 días sin preguntas ✅ Principiante a Avanzado ✅ Actualizado periódicamente de forma gratuita (última actualización en abril de 2021) ✅ Actualizado con recursos y guías adicionales

Visualización de datos en Python con Matplotlib y Pandas es un libro diseñado para llevar a los principiantes absolutos a Pandas y Matplotlib, con conocimientos básicos de Python, y permitirles construir una base sólida para el trabajo avanzado con estas bibliotecas, desde gráficos simples. a gráficos 3D animados con botones interactivos.

Sirve como una guía detallada que le enseñará todo lo que necesita saber sobre Pandas y Matplotlib, incluido cómo construir tipos de gráficos que no están integrados en la propia biblioteca.

Visualización de datos en Python, un libro para desarrolladores principiantes e intermedios de Python, lo guía a través de la manipulación de datos simple con Pandas, cubre bibliotecas de trazado centrales como Matplotlib y Seaborn, y le muestra cómo aprovechar las bibliotecas declarativas y experimentales. como Altair. Más específicamente, a lo largo de 11 capítulos, este libro cubre 9 bibliotecas de Python: Pandas, Matplotlib, Seaborn, Bokeh, Altair, Plotly, GGPlot, GeoPandas y VisPy.

Sirve como una guía práctica única para la visualización de datos, en una plétora de herramientas que podría usar en su carrera.