Leyenda en la trama de Seaborn

Manav Narula 21 diciembre 2022
Leyenda en la trama de Seaborn

Una leyenda suele ser un pequeño recuadro, que aparece en alguna esquina de su gráfico y se utiliza para informar sobre los diferentes elementos del gráfico. Y si hay varios datos en el gráfico, indica qué componente representa qué datos.

En este tutorial, aprenderemos cómo agregar o personalizar una leyenda a una trama simple nacida en el mar.

De forma predeterminada, seaborn agrega automáticamente una leyenda al gráfico.

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)

leyenda nacida en el mar 1

Observe que la leyenda está en la esquina superior derecha.

Si queremos agregar explícitamente una leyenda, podemos usar la función legend() de la biblioteca matplotlib. De esta forma, podemos agregar nuestras propias etiquetas explícitamente.

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)
plt.legend(labels=["Legend_Day1", "Legend_Day2"])

leyenda nacida en el mar 2

Tenga en cuenta que la biblioteca seaborn se basa y utiliza el módulo matplotlib para crear sus gráficos. Así que también podemos usar la función legend() para las parcelas nacidas en el mar.

También podemos realizar pequeñas personalizaciones sobre la leyenda. Por ejemplo, podemos agregar un título a la leyenda usando el parámetro title en la función legend(), como se muestra a continuación.

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

leyenda nacida en el mar 3

fontsize y title_fontsize son los dos parámetros que se utilizan para alterar la fuente del contenido en la leyenda y su título, respectivamente.

Vea el código a continuación.

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

leyenda nacida en el mar 4

Tenga en cuenta que title_fontsize no está presente en todas las versiones de matplotlib, así que compruebe su versión antes de usarla.

Podemos especificar el tamaño y la posición del cuadro de leyenda usando los parámetros loc y bbox_to_anchor.

loc se usa para especificar la ubicación de la leyenda. Los diferentes números especifican diferentes ubicaciones. Su valor es 0 por defecto, lo que significa que busca la mejor posición para colocar la leyenda donde ocurre una superposición mínima.

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 2 elementos, entonces considera sus valores como los valores x e y para el posicionamiento a lo largo de la loc especificada.

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)
plt.legend(labels=["Legend_Day1", "Legend_Day2"], loc=2, bbox_to_anchor=(1, 1))

leyenda nacida en el mar 5

Tenga en cuenta que el valor del argumento loc es 2, que indica la ubicación superior izquierda.

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