Legendas (Título da legenda)

1 minute read


É possível adicionar um título para a legenda, o que é feito passando o nome do título, como uma str, para o parâmetro title em plt.legend().

plt.figure(figsize=(8,6))
plt.scatter(cachorro_peso, cachorro_altura, label="Cachorros")
plt.scatter(gatos_peso, gatos_altura, label="Gatos")
plt.plot(pinguins_peso, pinguins_altura, marker="o", c="g", label="Pinguins")
plt.xlabel("Peso (kg)")
plt.ylabel("Altura (cm)")
plt.title("Relação entre peso e altura de diferentes animais")
plt.ylim([0,125])
plt.legend(ncol=2, title="Animais")
plt.show()

Figura 1 - Caixa da legenda com título.

gráfico de dispersão combinado com gráfico de linhas desenhado com matplotlib, caixa da legenda com título.


Alinhamento do título

É possível alterar o alinhamento do titulo da legenda, o que é feito utilizando um método da própria legenda, que é o método ._legend_box.align(), que deve receber uma str com o tipo de alinhamento desejado:

  • "center" (centralizado, padrão);
  • "left" (esquerda);
  • "right" (direita);

Para utilizar este parâmetro, precisamos criar um objeto de legenda, da mesma forma utilizada para alterar a espessura da borda da legenda.

leg = plt.legend()

E então aplicar o método ._legend_box.align(x), onde x é uma str com uma das opções listadas acima. Por exemplo, para deixar o titulo da legenda alinhadas à esquerda:

leg._legend_box.align = "left"

Então:

plt.figure(figsize=(8,6))
plt.scatter(cachorro_peso, cachorro_altura, label="Cachorros")
plt.scatter(gatos_peso, gatos_altura, label="Gatos")
plt.plot(pinguins_peso, pinguins_altura, marker="o", c="g", label="Pinguins")
plt.xlabel("Peso (kg)")
plt.ylabel("Altura (cm)")
plt.title("Relação entre peso e altura de diferentes animais")
plt.ylim([0,125])
leg = plt.legend(ncol=2, title="Animais")
leg._legend_box.align = "left"
plt.show()

Figura 2 - Caixa da legenda com título alinhado à esquerda.

gráfico de dispersão combinado com gráfico de linhas desenhado com matplotlib, caixa da legenda com título à esquerda.


Tamanho da fonte do título

Para alterar o tamanho da fonte do título, basta passar uma str com o nome do tamanho da fonte ou um número (int ou float) para o parâmetro title_fontsize.

A lista de opções para utilizar str:

  • 'xx-small';
  • 'x-small';
  • 'small';
  • 'medium';
  • 'large';
  • 'x-large';
  • 'xx-large';

Por exemplo:

plt.figure(figsize=(8,6))
plt.scatter(cachorro_peso, cachorro_altura, label="Cachorros")
plt.scatter(gatos_peso, gatos_altura, label="Gatos")
plt.plot(pinguins_peso, pinguins_altura, marker="o", c="g", label="Pinguins")
plt.xlabel("Peso (kg)")
plt.ylabel("Altura (cm)")
plt.title("Relação entre peso e altura de diferentes animais")
plt.ylim([0,125])
leg = plt.legend(ncol=2, title="Animais", title_fontsize='xx-large')
leg._legend_box.align = "left"
plt.show()

Figura 3 - Caixa da legenda com título alinhado com tamanho de fonte alterado.

gráfico de dispersão combinado com gráfico de linhas desenhado com matplotlib, caixa da legenda com título com tamanho de fonte alterado.


Como inserir um título centralizado na legenda?

Passando o nome da legenda através do parâmetro title em plt.legend()

Não é preciso fazer nada

Passando o parâmetro align como 'center' em plt.legend()

Passando o nome da legenda através do parâmetro title e o parâmetro align como 'center' em plt.legend()


Anterior Próximo

Updated: