Come modificare l'ordine degli elementi nella legenda matplotlib
Puoi utilizzare la seguente porzione di codice per modificare l’ordine degli elementi in una legenda Matplotlib:
#get handles and labels handles, labels = plt. gca (). get_legend_handles_labels () #specify order of items in legend order = [1,2,0] #add legend to plot plt. legend ([handles[idx] for idx in order],[labels[idx] for idx in order])
L’esempio seguente mostra come utilizzare questa sintassi nella pratica.
Esempio: modifica l’ordine degli elementi nella legenda Matplotlib
Supponiamo di creare il seguente grafico a linee in 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], 'rebounds': [6, 8, 8, 10, 14, 12, 12, 10, 11]}) #add lines to plot plt. plot (df['points'], label='Points', color='green') plt. plot (df['assists'], label='Assists', color='steelblue') plt. plot (df['rebounds'], label='Rebounds', color='purple') #add legend plt. legend ()
Gli elementi della legenda vengono posizionati nell’ordine in cui abbiamo aggiunto le linee alla trama.
Tuttavia, possiamo utilizzare la seguente sintassi per personalizzare l’ordine degli elementi nella legenda:
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], 'rebounds': [6, 8, 8, 10, 14, 12, 12, 10, 11]}) #add lines to plot plt. plot (df['points'], label='Points', color='green') plt. plot (df['assists'], label='Assists', color='steelblue') plt. plot (df['rebounds'], label='Rebounds', color='purple') #get handles and labels handles, labels = plt. gca (). get_legend_handles_labels () #specify order of items in legend order = [1,2,0] #add legend to plot plt. legend ([handles[idx] for idx in order],[labels[idx] for idx in order])
Tieni presente che abbiamo specificato:
- ordine = [1, 2, 0]
Questo significa:
- Il primo elemento nella legenda dovrebbe essere l’etichetta che originariamente si trovava nella posizione dell’indice 1 della vecchia legenda (“Aiuti”).
- Il secondo elemento della legenda dovrebbe essere l’etichetta che originariamente si trovava nella posizione dell’indice 2 della vecchia legenda (“Rimbalzi”)
- Il terzo elemento della legenda deve essere l’etichetta che originariamente si trovava nella posizione di indice 0 della vecchia legenda (“Punti”)
Risorse addizionali
I seguenti tutorial spiegano come eseguire altre operazioni comuni in Matplotlib:
Come cambiare la posizione di una legenda in Matplotlib
Come posizionare la legenda all’esterno di un grafico Matplotlib
Come modificare la dimensione del carattere della legenda in Matplotlib