Legendas (Bordas da caixa da legenda)
Estilo da borda da legenda
É possível alterar os cantos (bordas) da legenda, variando o parâmetro fancybox
para True
(padrão), o que deixa as bordas arredondadas, ou para False
, o que deixa as bordas retas.
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, fancybox=False)
plt.show()
Figura 1 - Caixa da legenda com cantos quadrados.
Sombra na caixa da legenda
É possível adicionar uma sombra na caixa da legenda, o que fornece uma noção de profundidade e estilo a caixa da legenda. Para adicionar este efeito, basta passar um True
para o parâmetro shadow
. O valor padrão é False
, que não insere a sombra na caixa da legenda.
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, shadow=True)
plt.show()
Figura 2 - Caixa da legenda com sombreamento.
Cor de fundo
Para alterar a cor de fundo da caixa da legenda, basta passar uma str
com o nome da cor desejada (padrão é 'white'
) para o parâmetro facecolor
. As cores disponíveis são as mesmas vistas anteriormente.
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, shadow=True, facecolor="lightgray")
plt.show()
Figura 3 - Caixa da legenda com cor de fundo cinza.
Transparência da caixa da legenda
Para alterar a transparência da caixa da legenda, basta passar um número float
entre 0.0
(completamente transparente) e 1.0
(sem nenhuma transparência) para o parâmetro framealpha
. O valor padrão é 0.8
.
Por exemplo, para uma transparência de 0.1
:
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, shadow=True, facecolor="lightgray", loc=7, framealpha=0.1)
plt.show()
Figura 4 - Caixa da legenda com transparência de 0.1.
Já para uma transparência de 0.9
:
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, shadow=True, facecolor="lightgray", loc=7, framealpha=0.9)
plt.show()
Figura 5 - Caixa da legenda com transparência de 0.9.
Cor da borda
Para alterar a cor da borda (padrão 'black'
), passamos o nome da cor, utilizando uma str
, através do parâmetro edgecolor
. Observe que por padrão a cor das bordas é preta, mas, visualmente, ela tem um tom acinzentado. Isto ocorre, pois por padrão, as legendas tem transparência de 80%, o que também deixa a cor preta da borda 80% transparente (tom acinzentado).
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, shadow=True, facecolor="lightgray", edgecolor="m")
plt.show()
Figura 6 - Caixa da legenda com borda na cor magenta.
Espessura da borda
É possível alterar a espessura da borda da legenda. Entretanto, é necessário acessar as propriedades da legenda criada antes, para depois alterar a espessura. Isto é feito através do set_linewidth()
, que é acessado através do get_frame()
, que por sua vez esta em um objeto de legenda.
Dessa forma, precisamos criar um objeto de legenda, o que é feito atribuindo o plt.legend()
para uma nova variável, da seguinte forma:
leg = plt.legend()
Agora, a variável leg
contém todas as informações da legenda, inclusive o get_frame().set_linewidth()
. Basta então passar a nova espessura para borda (número, int
ou float
), da seguinte forma:
leg.get_frame().set_linewidth(10)
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, shadow=True, facecolor="lightgray", edgecolor="m")
leg.get_frame().set_linewidth(10)
plt.show()
Figura 7 - Caixa da legenda com borda mais espessa.