Cambiar la ubicación de la leyenda en la trama de Seaborn

Manav Narula 13 octubre 2021
Cambiar la ubicación de la leyenda en la trama de Seaborn

En este tutorial, aprenderemos cómo cambiar la ubicación de la leyenda en una trama nacida en el mar en Python.

Para esto, necesitaremos deshabilitar la leyenda predeterminada. Esto se puede hacer configurando el parámetro legend como Falso en la función de trazado. Agregaremos explícitamente la leyenda usando la función matplotlib.pyplot.legend() de la biblioteca matplotlib.

Para alterar la posición de la leyenda, usaremos el parámetro loc de esta función. Podemos especificar la ubicación requerida de la leyenda como el valor de este parámetro.

Por ejemplo,

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

Ubicación de la leyenda de Seaborn

También podemos especificar diferentes números como valor para este parámetro. Los diferentes números corresponden a diferentes ubicaciones. Por ejemplo, 1 para la posición superior derecha, 2 especifica la posición superior izquierda, etc. Consulte este artículo de Matplotlib para obtener la tabla de la relación entre números y posiciones.

Por defecto, el valor del parámetro loc es 0, lo que significa que busca la posición dentro del gráfico para que se produzca una superposición mínima.

También podemos colocar el cuadro de leyenda fuera del gráfico usando el parámetro bbox_to_anchor. El bbox_to_anchor especifica la posición de la leyenda con respecto a la ubicación especificada en el parámetro loc. Si configuramos el parámetro bbox_to_anchor con una tupla de dos elementos, entonces considera sus valores como los valores x e y para el posicionamiento a lo largo de la loc especificada.

Por ejemplo,

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

Ubicación de la leyenda de Seaborn

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

Artículo relacionado - Seaborn Legend