Legend in Seaborn Plot
Uma legenda é geralmente uma pequena caixa, que aparece em algum canto do gráfico e é usada para contar sobre os diferentes elementos do gráfico. E se houver vários dados no gráfico, ele informa qual componente representa quais dados.
Neste tutorial, aprenderemos como adicionar ou personalizar uma legenda em um gráfico simples do mar.
Por padrão, o seaborn adiciona automaticamente uma legenda ao gráfico.
Por exemplo,
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
df = pd.DataFrame(
{"Day 1": [7, 1, 5, 6, 3, 10, 5, 8], "Day 2": [1, 2, 8, 4, 3, 9, 5, 2]}
)
sns.lineplot(data=df)
Observe que a legenda está no canto superior direito.
Se quisermos adicionar explicitamente uma legenda, podemos usar a função legend()
da biblioteca matplotlib. Dessa forma, podemos adicionar nossos próprios rótulos explicitamente.
Por exemplo,
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
df = pd.DataFrame(
{"Day 1": [7, 1, 5, 6, 3, 10, 5, 8], "Day 2": [1, 2, 8, 4, 3, 9, 5, 2]}
)
sns.lineplot(data=df)
plt.legend(labels=["Legend_Day1", "Legend_Day2"])
Observe que a biblioteca seaborn é baseada e usa o módulo matplotlib para criar seus gráficos. Portanto, podemos usar a função legend()
para plotagens marítimas também.
Também podemos realizar pequenas personalizações na legenda. Por exemplo, podemos adicionar um título à legenda usando o parâmetro title
na função legend()
, conforme mostrado abaixo.
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
df = pd.DataFrame(
{"Day 1": [7, 1, 5, 6, 3, 10, 5, 8], "Day 2": [1, 2, 8, 4, 3, 9, 5, 2]}
)
sns.lineplot(data=df)
plt.legend(labels=["Legend_Day1", "Legend_Day2"], title="Title_Legend")
O fontsize
e title_fontsize
são os dois parâmetros que são usados para alterar a fonte do conteúdo na legenda e seu título, respectivamente.
Veja o código abaixo.
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
df = pd.DataFrame(
{"Day 1": [7, 1, 5, 6, 3, 10, 5, 8], "Day 2": [1, 2, 8, 4, 3, 9, 5, 2]}
)
sns.lineplot(data=df)
plt.legend(
labels=["Legend_Day1", "Legend_Day2"],
title="Title_Legend",
fontsize="large",
title_fontsize="10",
)
Observe que title_fontsize
não está presente em todas as versões do matplotlib, portanto, verifique sua versão antes de usá-lo.
Podemos especificar o tamanho e a posição da caixa de legenda usando os parâmetros loc
e bbox_to_anchor
.
loc
é usado para especificar a localização da legenda. Números diferentes especificam locais diferentes. Seu valor é 0 por padrão, o que significa que ele procura a melhor posição para colocar a legenda onde ocorre a sobreposição mínima.
O bbox_to_anchor
especifica a posição da legenda em relação ao local especificado no parâmetro loc
. Se definirmos o parâmetro bbox_to_anchor
com uma tupla de 2 elementos, ele considera seus valores como os valores x e y para posicionamento ao longo do loc
especificado.
Por exemplo,
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
df = pd.DataFrame(
{"Day 1": [7, 1, 5, 6, 3, 10, 5, 8], "Day 2": [1, 2, 8, 4, 3, 9, 5, 2]}
)
sns.lineplot(data=df)
plt.legend(labels=["Legend_Day1", "Legend_Day2"], loc=2, bbox_to_anchor=(1, 1))
Observe que o valor do argumento loc
é 2, o que indica a localização superior esquerda.
Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.
LinkedIn