Cambia posizione della leggenda in Seaborn Plot

Manav Narula 15 febbraio 2024
Cambia posizione della leggenda in Seaborn Plot

In questo tutorial impareremo come modificare la posizione della legenda in una trama nata dal mare in Python.

Per questo, dovremo disabilitare la legenda predefinita. Questo può essere fatto impostando il parametro legend su False nella funzione plot. Aggiungeremo esplicitamente la legenda usando la funzione matplotlib.pyplot.legend() dalla libreria matplotlib.

Per modificare la posizione della legenda, utilizzeremo il parametro loc di questa funzione. Possiamo specificare la posizione richiesta della legenda come valore di questo parametro.

Per esempio,

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

Luogo leggendario Seaborn

Possiamo anche specificare numeri diversi come valore per questo parametro. Numeri diversi corrispondono a posizioni diverse. Ad esempio, 1 per la posizione in alto a destra, 2 specifica la posizione in alto a sinistra, ecc. Fare riferimento a questo articolo Matplotlib per ottenere la tabella della relazione tra numeri e posizioni.

Per impostazione predefinita, il valore del parametro loc è 0, il che significa che cerca la posizione all’interno del grafico in modo che si verifichi una sovrapposizione minima.

Possiamo anche posizionare la legenda fuori dal grafico usando il parametro bbox_to_anchor. Il bbox_to_anchor specifica la posizione della legenda rispetto alla posizione specificata nel parametro loc. Se impostiamo il parametro bbox_to_anchor con una tupla a due elementi, allora considera i loro valori come i valori x e y per il posizionamento lungo la loc specificata.

Per esempio,

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

Luogo leggendario Seaborn

Autore: 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

Articolo correlato - Seaborn Legend