Data Visualization

Dominando el Espaciado de Subgráficos en Matplotlib

Spread the love

Matplotlib es una potente biblioteca de Python para crear visualizaciones. Al trabajar con múltiples subplots, el espaciado efectivo es crucial para la legibilidad. Este artículo explora métodos para controlar el espaciado de subplots en Matplotlib.

Tabla de contenido

Método tight_layout()

La función tight_layout() es una forma simple y efectiva de ajustar el espaciado de los subplots. Automáticamente evita la superposición de elementos como títulos y etiquetas. Es ideal cuando no se necesita un control preciso sobre los parámetros de espaciado individuales.


import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)

fig, axes = plt.subplots(2, 1)

axes[0].plot(x, y1)
axes[0].set_title('Onda Senoidal')
axes[1].plot(x, y2)
axes[1].set_title('Onda Coseno')

plt.tight_layout()
plt.show()

Método subplots_adjust()

Para un control preciso, use plt.subplots_adjust(). Esta función permite la manipulación de parámetros de espaciado: left, bottom, right, top, wspace (ancho), y hspace (alto). Estos son fracciones de las dimensiones de la figura.


import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)

fig, axes = plt.subplots(2, 1)

axes[0].plot(x, y1)
axes[0].set_title('Onda Senoidal')
axes[1].plot(x, y2)
axes[1].set_title('Onda Coseno')

plt.subplots_adjust(hspace=0.5)
plt.show()

Aquí, hspace=0.5 aumenta el espaciado vertical. Experimente con valores para lograr el diseño deseado. Ajuste wspace de manera similar para el espaciado horizontal.

Método subplot_tool()

plt.subplot_tool() proporciona una interfaz interactiva. Abre una ventana donde puede arrastrar y cambiar el tamaño de los subplots visualmente. Esto es particularmente útil para diseños complejos.


import matplotlib.pyplot as plt

fig, axes = plt.subplots(2, 2)

plt.subplot_tool()
plt.show()

Parámetro constrained_layout=True

Un enfoque moderno y robusto es usar constrained_layout=True dentro de plt.subplots(). Esto ajusta automáticamente los parámetros para evitar superposiciones, manejando diseños complejos de manera más efectiva que tight_layout().


import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)

fig, axes = plt.subplots(2, 1, constrained_layout=True)

axes[0].plot(x, y1)
axes[0].set_title('Onda Senoidal')
axes[1].plot(x, y2)
axes[1].set_title('Onda Coseno')

plt.show()

Esto simplifica el código y ofrece una solución confiable, especialmente para figuras intrincadas. Elija el método que mejor se adapte a sus necesidades: tight_layout() o constrained_layout=True para ajustes simples; subplots_adjust() para un control preciso; y subplot_tool() para ajustes interactivos.

Deja una respuesta

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