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 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]})
import seaborn as sns
sns.lineplot(data = df, legend = False)
plt.legend(labels = ['Day1','Day2'],loc = 2, bbox_to_anchor = (1,1))

Luogo leggendario Seaborn

Articolo correlato - Seaborn Legend

  • Rimuovi la legenda da Seaborn Plots in Python
  • Leggenda in Seaborn Plot