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