1
resposta

Diferença entre o .set_title() e o .figure.suptitle()

Olá,

Qual a diferença entre o .set_title() e o .figure.suptitle()?

Obrigado!

1 resposta

Olá, Raphael, tudo bem?

Essa é uma ótima pergunta e para não deixar dúvidas vamos explicar com detalhes qual seria essa diferença, trazendo um exemplo de como utilizá-los combinados.

Os métodos suptitle() e set_title() são aplicados em diferentes níveis dentro da biblioteca matplolib. O suptitle() é um método aplicado ao figure e, como o nome sugere, diz respeito a um título superior normalmente usado para destacar a figura como um todo. E o set_title() é um método aplicado ao Axes, que seria no nosso exemplo um de nosso gráficos. O código abaixo demonstra uma forma de aplicar os dois métodos e onde cada um seria adequado:

# Importando as bibliotecas
import matplotlib.pyplot as plt
import numpy as np

# Escolhendo o intervalo de x de -pi a pi 
x = np.arange(-np.pi, np.pi, 0.01)

# Criando uma figura fig e escolhendo o Título Principal (suptitle) 
fig = plt.figure(figsize = (8,8))
fig.suptitle('Curvas do seno e cosseno de x', fontsize = 14)

# Adicionando o gráfico na primeira linha da figura (seno x) e com o título (set_title)
ax1 = fig.add_subplot(2, 1, 1)
ax1.set_title('Seno de x')
ax1.plot(x, np.sin(x))

# Adicionando o gráfico na primeira linha da figura (seno x) e com o título (set_title)
ax2 = fig.add_subplot(2, 1, 2)
ax2.set_title('Cosseno de x')
ax2.plot(x, np.cos(x))

plt.show()

Saída:

 

Figura com o título principal "Curvas do seno e cosseno de x" no topo e com dois gráficos um abaixo do outro . O 1º gráfico tem o título " Seno de x" com a curva do seno representada na figura e o 2º gráfico tem o título "Cosseno de x" com a curva do cosseno representada na figura.

 

Como podemos notar no código o suptitle() foi aplicado a variável fig já o set_title() foi aplicado em ax1 e ax2. Assim, se visualizarmos os tipos da variável figure, ax1 e ax2 podemos confirmar o que foi explicado nesse tópico:

print(type(fig), type(ax1), sep='\n\n')

Saída:

<class 'matplotlib.figure.Figure'>

<class 'matplotlib.axes._subplots.AxesSubplot'>

Espero ter ajudado e qualquer dúvida é só chamar!

Forte abraço!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.Bons Estudos!