Changer l'emplacement de la légende dans l'intrigue de Seaborn

Manav Narula 15 février 2024
Changer l'emplacement de la légende dans l'intrigue de Seaborn

Dans ce tutoriel, nous allons apprendre à changer l’emplacement de la légende dans un tracé marin en Python.

Pour cela, nous devrons désactiver la légende par défaut. Cela peut être fait en définissant le paramètre legend sur False dans la fonction de tracé. Nous ajouterons explicitement la légende en utilisant la fonction matplotlib.pyplot.legend() de la bibliothèque matplotlib.

Pour modifier la position de la légende, nous utiliserons le paramètre loc de cette fonction. Nous pouvons spécifier l’emplacement requis de la légende comme valeur de ce paramètre.

Par example,

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

Emplacement de la légende Seaborn

Nous pouvons également spécifier différents nombres comme valeur pour ce paramètre. Des numéros différents correspondent à des emplacements différents. Par exemple, 1 pour la position supérieure droite, 2 spécifie la position supérieure gauche, etc. Reportez-vous à cet article Matplotlib pour obtenir le tableau de la relation entre les nombres et les positions.

Par défaut, la valeur du paramètre loc est 0, ce qui signifie qu’il recherche la position à l’intérieur du tracé pour qu’un chevauchement minimum ait lieu.

On peut aussi placer la boîte de légende en dehors du tracé en utilisant le paramètre bbox_to_anchor. La bbox_to_anchor précise la position de la légende par rapport à l’emplacement spécifié dans le paramètre loc. Si nous définissons le paramètre bbox_to_anchor avec un tuple à deux éléments, alors il considère leurs valeurs comme les valeurs x et y pour le positionnement le long du loc spécifié.

Par example,

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

Emplacement de la légende Seaborn

Auteur: Manav Narula
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

Article connexe - Seaborn Legend