Legend in Seaborn Plot

Manav Narula 21 dezembro 2022
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)

lenda nascida do mar 1

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"])

lenda 2 do mar

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")

lenda 3 do mar

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",
)

lenda do mar 4

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))

lenda 5 do mar

Observe que o valor do argumento loc é 2, o que indica a localização superior esquerda.

Manav Narula avatar Manav Narula avatar

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

Artigo relacionado - Seaborn Legend