Come cambiare la posizione di una legenda in matplotlib
Per modificare la posizione di una legenda in Matplotlib, puoi utilizzare la funzione plt.legend() .
Ad esempio, puoi utilizzare la seguente sintassi per posizionare la legenda nell’angolo in alto a sinistra del grafico:
plt. legend (loc=' upper left ')
La posizione predefinita è “migliore”: è qui che Matplotlib trova automaticamente una posizione per la legenda in base a dove evita di coprire i punti dati.
Tuttavia, puoi specificare una delle seguenti posizioni delle didascalie:
- In alto a destra
- nell’angolo in alto a sinistra
- in basso a sinistra
- in basso a destra
- GIUSTO
- centro sinistra
- Centrodestra
- in basso al centro
- in alto al centro
- centro
Puoi anche utilizzare l’argomento bbox_to_anchor() per posizionare la legenda all’esterno della trama. Ad esempio, puoi utilizzare la seguente sintassi per posizionare la legenda nell’angolo in alto a destra all’esterno del grafico:
plt. legend (bbox_to_anchor=( 1.05 , 1 ), loc=' upper left ', borderaxespad= 0 )
Gli esempi seguenti mostrano come utilizzare nella pratica ciascuno di questi metodi.
Esempio 1: cambia la posizione della legenda all’interno del grafico Matplotlib
Il codice seguente mostra come posizionare la legenda nella parte centrale a destra di un grafico a linee Matplotlib:
import pandas as pd import matplotlib. pyplot as plt #createdata df = pd. DataFrame ({' points ': [11, 17, 16, 18, 22, 25, 26, 24, 29], ' assists ': [5, 7, 7, 9, 12, 9, 9, 4, 8]}) #add lines to plot plt. plot (df[' points '], label=' Points ', color=' green ') plt. plot (df[' assists '], label=' Assists ', color=' steelblue ') #place legend in center right of plot plt. legend (loc=' center right ', title=' Metric ')
E il codice seguente mostra come posizionare la legenda in alto a sinistra di un grafico Matplotlib:
import pandas as pd import matplotlib. pyplot as plt #create data df = pd. DataFrame ({' points ': [11, 17, 16, 18, 22, 25, 26, 24, 29], ' assists ': [5, 7, 7, 9, 12, 9, 9, 4, 8]}) #add lines to plot plt. plot (df[' points '], label=' Points ', color=' green ') plt. plot (df[' assists '], label=' Assists ', color=' steelblue ') #place legend in center right of plot plt. legend (loc=' upper left ', title=' Metric ')
Esempio 2: modificare la posizione della legenda all’esterno del grafico Matplotlib
Per posizionare la legenda all’esterno di un grafico Matplotlib, possiamo utilizzare l’argomento bbox_to_anchor() .
Ad esempio, ecco come posizionare la legenda all’esterno dell’angolo in alto a destra della trama:
import pandas as pd import matplotlib. pyplot as plt #create data df = pd. DataFrame ({' points ': [11, 17, 16, 18, 22, 25, 26, 24, 29], ' assists ': [5, 7, 7, 9, 12, 9, 9, 4, 8]}) #add lines to plot plt. plot (df[' points '], label=' Points ', color=' green ') plt. plot (df[' assists '], label=' Assists ', color=' steelblue ') #place legend in center right of plot plt. legend (bbox_to_anchor=( 1.02 , 1 ), loc=' upper left ', borderaxespad= 0 )
Ed ecco come posizionare la legenda fuori dall’angolo in basso a destra della trama:
import pandas as pd import matplotlib. pyplot as plt #create data df = pd. DataFrame ({' points ': [11, 17, 16, 18, 22, 25, 26, 24, 29], ' assists ': [5, 7, 7, 9, 12, 9, 9, 4, 8]}) #add lines to plot plt. plot (df[' points '], label=' Points ', color=' green ') plt. plot (df[' assists '], label=' Assists ', color=' steelblue ') #place legend in center right of plot plt. legend (bbox_to_anchor=( 1.02 , 0.1 ), loc=' upper left ', borderaxespad= 0 )
Fare riferimento alla documentazione di matplotlib per una spiegazione dettagliata dell’argomento bbox_to_anchor() .
Risorse addizionali
I seguenti tutorial spiegano come eseguire altre operazioni comuni in Matplotlib:
Come modificare la dimensione del carattere della legenda in Matplotlib
Come aggiungere un titolo alla legenda in Matplotlib
Come regolare la posizione del titolo in Matplotlib
Come regolare la posizione dell’etichetta dell’asse in Matplotlib