Alterar a localização da legenda na trama do Seaborn
Neste tutorial, aprenderemos como alterar a localização da legenda em um plot do mar em Python.
Para isso, precisaremos desabilitar a legenda padrão. Isso pode ser feito definindo o parâmetro legend
como False na função de gráfico. Vamos adicionar explicitamente a legenda usando a função matplotlib.pyplot.legend()
da biblioteca matplotlib.
Para alterar a posição da legenda, usaremos o parâmetro loc
desta função. Podemos especificar a localização necessária da legenda como o valor deste parâmetro.
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, legend=False)
plt.legend(labels=["Day1", "Day2"], loc="upper right")
Também podemos especificar números diferentes como o valor para este parâmetro. Números diferentes correspondem a locais diferentes. Por exemplo, 1 para a posição superior direita, 2 especifica a posição superior esquerda, etc. Consulte este artigo Matplotlib para obter a tabela da relação entre números e posições.
Por padrão, o valor do parâmetro loc
é 0, o que significa que ele procura a posição dentro do gráfico para que ocorra uma sobreposição mínima.
Também podemos colocar a caixa de legenda fora do gráfico usando o parâmetro bbox_to_anchor
. 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 dois elementos, ele considera seus valores como os valores x e y para o posicionamento ao longo do loc
especificado.
Por exemplo,
import seaborn as sns
import pandas as pd
import matplotlib.pyplot as plt
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, legend=False)
plt.legend(labels=["Day1", "Day2"], loc=2, bbox_to_anchor=(1, 1))
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