O Matplotlib oferece diversas maneiras de adicionar um único título abrangente a uma figura contendo múltiplos subplots. Isso melhora a legibilidade e fornece contexto crucial às suas visualizações. Este artigo explora dois métodos principais, destacando suas semelhanças e diferenças sutis.
Sumário
Usando pyplot.suptitle()
A função pyplot.suptitle()
oferece uma maneira concisa de adicionar um título principal. Ela faz parte do módulo matplotlib.pyplot
(tipicamente importado como plt
). Este método é direto e amplamente utilizado.
import matplotlib.pyplot as plt
# Dados de exemplo
x = [1, 2, 3, 4, 5]
y1 = [2, 4, 1, 3, 5]
y2 = [1, 3, 5, 2, 4]
# Criar subplots
fig, axes = plt.subplots(2, 1)
# Plotar dados
axes[0].plot(x, y1)
axes[0].set_title('Subplot 1')
axes[1].plot(x, y2)
axes[1].set_title('Subplot 2')
# Adicionar título principal
plt.suptitle('Título Principal da Figura', fontsize=14)
# Ajustar layout (crucial para prevenir sobreposição)
plt.tight_layout(rect=[0, 0.03, 1, 0.95])
plt.show()
A função plt.tight_layout()
é essencial. Ela ajusta automaticamente os parâmetros do subplot para prevenir sobreposição de títulos. O parâmetro rect
ajusta o layout; você pode precisar ajustar seus valores com base no comprimento do seu título e no número de subplots.
Usando figure.suptitle()
Alternativamente, o método figure.suptitle()
, acessado via o próprio objeto figura, fornece funcionalidade equivalente. Esta abordagem se alinha com um estilo de programação orientado a objetos.
import matplotlib.pyplot as plt
# Dados de exemplo (mesmo que acima)
x = [1, 2, 3, 4, 5]
y1 = [2, 4, 1, 3, 5]
y2 = [1, 3, 5, 2, 4]
# Criar subplots
fig, axes = plt.subplots(2, 1)
# Plotar dados
axes[0].plot(x, y1)
axes[0].set_title('Subplot 1')
axes[1].plot(x, y2)
axes[1].set_title('Subplot 2')
# Adicionar título principal usando o objeto figura
fig.suptitle('Título Principal da Figura (Orientado a Objetos)', fontsize=14)
# Ajustar layout
plt.tight_layout(rect=[0, 0.03, 1, 0.95])
plt.show()
Este código espelha o exemplo anterior, demonstrando a natureza intercambiável desses dois métodos.
Escolhendo o Método Certo
Ambos os métodos alcançam resultados idênticos. A escolha geralmente se resume à preferência pessoal ou estilo de codificação. pyplot.suptitle()
é mais conciso, enquanto figure.suptitle()
se alinha melhor com uma abordagem estritamente orientada a objetos. A consistência em seu projeto é fundamental. Lembre-se de sempre usar plt.tight_layout()
ou ajustar manualmente os parâmetros do subplot para garantir uma figura limpa e legível.