Data Visualization

Dominando los Títulos de Subplots en Matplotlib: Dos Enfoques Efectivos

Spread the love

Matplotlib ofrece varias maneras de añadir un único título general a una figura que contiene múltiples subgráficos. Esto mejora la legibilidad y proporciona contexto crucial a sus visualizaciones. Este artículo explora dos métodos principales, destacando sus similitudes y sutiles diferencias.

Tabla de contenido

Usando pyplot.suptitle()

La función pyplot.suptitle() ofrece una forma concisa de añadir un título principal. Forma parte del módulo matplotlib.pyplot (típicamente importado como plt). Este método es sencillo y ampliamente utilizado.


import matplotlib.pyplot as plt

# Datos de muestra
x = [1, 2, 3, 4, 5]
y1 = [2, 4, 1, 3, 5]
y2 = [1, 3, 5, 2, 4]

# Crear subgráficos
fig, axes = plt.subplots(2, 1)

# Graficar datos
axes[0].plot(x, y1)
axes[0].set_title('Subgráfico 1')
axes[1].plot(x, y2)
axes[1].set_title('Subgráfico 2')

# Añadir título principal
plt.suptitle('Título principal de la figura', fontsize=14)

# Ajustar diseño (crucial para prevenir superposición)
plt.tight_layout(rect=[0, 0.03, 1, 0.95]) 

plt.show()

La función plt.tight_layout() es esencial. Ajusta automáticamente los parámetros de los subgráficos para prevenir la superposición de títulos. El parámetro rect ajusta el diseño; puede que necesite ajustar sus valores en función de la longitud de su título y el número de subgráficos.

Usando figure.suptitle()

Alternativamente, el método figure.suptitle(), accesible a través del propio objeto figura, proporciona una funcionalidad equivalente. Este enfoque se alinea con un estilo de programación orientado a objetos.


import matplotlib.pyplot as plt

# Datos de muestra (igual que antes)
x = [1, 2, 3, 4, 5]
y1 = [2, 4, 1, 3, 5]
y2 = [1, 3, 5, 2, 4]

# Crear subgráficos
fig, axes = plt.subplots(2, 1)

# Graficar datos
axes[0].plot(x, y1)
axes[0].set_title('Subgráfico 1')
axes[1].plot(x, y2)
axes[1].set_title('Subgráfico 2')

# Añadir título principal usando el objeto figura
fig.suptitle('Título principal de la figura (Orientado a Objetos)', fontsize=14)

# Ajustar diseño
plt.tight_layout(rect=[0, 0.03, 1, 0.95])

plt.show()

Este código refleja el ejemplo anterior, demostrando la naturaleza intercambiable de estos dos métodos.

Eligiendo el método correcto

Ambos métodos logran resultados idénticos. La elección a menudo se reduce a la preferencia personal o al estilo de codificación. pyplot.suptitle() es más conciso, mientras que figure.suptitle() se alinea mejor con un enfoque estrictamente orientado a objetos. La consistencia dentro de su proyecto es clave. Recuerde siempre emplear plt.tight_layout() o ajustar manualmente los parámetros de los subgráficos para asegurar una figura limpia y legible.

Deja una respuesta

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