Módulo: Subplots y layouts
Este módulo forma parte del curso de Matplotlib. .
Los subplots y layouts permiten crear figuras con múltiples gráficos organizados de forma clara y profesional. Matplotlib ofrece varias herramientas para este propósito, desde la más sencilla hasta la más flexible.
Herramientas de layout en Matplotlib
| Herramienta | Descripción | Cuándo usarla |
|-------------|-------------|---------------|
| plt.subplots(N, M) | Cuadrícula uniforme N×M | Layouts regulares simples |
| GridSpec | Cuadrícula con tamaños variables | Dashboards con diferentes proporciones |
| subplot_mosaic() | Layout declarativo por nombres | Layouts irregulares legibles |
| constrained_layout | Ajuste automático de márgenes | Evitar solapamientos automáticamente |
Crear subplots básicos
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 10, 100)
fig, axes = plt.subplots(2, 2, figsize=(12, 8), constrained_layout=True)
axes[0, 0].plot(x, np.sin(x), 'royalblue')
axes[0, 0].set_title('Seno')
axes[0, 1].plot(x, np.cos(x), 'coral')
axes[0, 1].set_title('Coseno')
axes[1, 0].hist(np.random.randn(500), bins=25, color='seagreen', alpha=0.8)
axes[1, 0].set_title('Histograma')
axes[1, 1].scatter(np.random.randn(50), np.random.randn(50), alpha=0.7)
axes[1, 1].set_title('Scatter')
fig.suptitle('Dashboard de ejemplo 2×2', fontsize=14)
plt.show()
GridSpec para layouts irregulares
import matplotlib.gridspec as gridspec
fig = plt.figure(figsize=(12, 8))
gs = gridspec.GridSpec(2, 3, figure=fig, width_ratios=[2, 1, 1])
ax_main = fig.add_subplot(gs[:, 0]) # ocupa las 2 filas de la columna 0
ax_top = fig.add_subplot(gs[0, 1:]) # fila 0, columnas 1 y 2
ax_bot1 = fig.add_subplot(gs[1, 1]) # fila 1, columna 1
ax_bot2 = fig.add_subplot(gs[1, 2]) # fila 1, columna 2
# Contenido de ejemplo
ax_main.plot(x, np.sin(x), 'royalblue', linewidth=2)
ax_main.set_title('Gráfico principal')
ax_top.bar(['A', 'B', 'C', 'D'], [4, 7, 3, 9], color='coral')
ax_bot1.hist(np.random.randn(200), bins=15, color='green', alpha=0.7)
ax_bot2.pie([30, 40, 30], labels=['X', 'Y', 'Z'], autopct='%1.0f%%')
plt.tight_layout()
plt.show()
constrained_layout vs tight_layout
Ambas funciones ajustan automáticamente los márgenes, pero constrained_layout=True (parámetro al crear la figura) es el método moderno y maneja mejor las barras de color y suptitles.
Otros módulos de este curso
Todos los módulos del curso
Navega entre los módulos de Matplotlib
Explora más sobre Matplotlib
Descubre más recursos de Matplotlib
Alan Sastre
Ingeniero de Software y formador, CEO en CertiDevs
Ingeniero de software especializado en Full Stack y en Inteligencia Artificial. Como CEO de CertiDevs, Matplotlib es una de sus áreas de expertise. Con más de 15 años programando, 6K seguidores en LinkedIn y experiencia como formador, Alan se dedica a crear contenido educativo de calidad para desarrolladores de todos los niveles.