Come risolvere in python: nessuna maniglia con etichette trovata da inserire nella legenda
Un avviso che potresti incontrare quando usi matplotlib è:
No handles with labels found to put in legend.
Questo avviso in genere si verifica per uno dei due motivi:
1. Non sei riuscito a creare etichette per i dati del grafico.
2. Hai tentato di creare una legenda prima di creare una trama.
Gli esempi seguenti mostrano come evitare questo avviso in entrambi gli scenari.
Esempio 1: non sei riuscito a creare etichette per i dati del grafico.
Supponiamo di provare a utilizzare il codice seguente per creare un grafico a linee in matplotlib con una legenda ed etichette:
import matplotlib. pyplot as plt
import pandas as pd
#define data values
df = pd. DataFrame ({' x ': [18, 22, 19, 14, 14, 11, 20, 28],
' y ': [5, 7, 7, 9, 12, 9, 9, 4],
' z ': [11, 8, 10, 6, 6, 5, 9, 12]})
#add multiple lines to matplotlib plot
plt. plot (df[' x '], color=' green ')
plt. plot (df[' y '], color=' blue ')
plt. plot (df[' z '], color=' purple ')
#attempt to add legend to plot
plt. legend ()
No handles with labels found to put in legend.
Matplotlib crea il grafico a linee, ma riceviamo l’avviso No handle with label finded to put in legend .
Per evitare questo avvertimento, dobbiamo usare l’argomento label per fornire un’etichetta per ogni riga nella trama:
import matplotlib. pyplot as plt
import pandas as pd
#define data values
df = pd. DataFrame ({' x ': [18, 22, 19, 14, 14, 11, 20, 28],
' y ': [5, 7, 7, 9, 12, 9, 9, 4],
' z ': [11, 8, 10, 6, 6, 5, 9, 12]})
#add multiple lines to matplotlib plot
plt. plot (df[' x '], label=' x ', color=' green ')
plt. plot (df[' y '], label=' y ', color=' blue ')
plt. plot (df[' z '], label=' z ', color=' purple ')
#attempt to add legend to plot
plt. legend ()
Tieni presente che viene creata una legenda con le etichette e questa volta non riceviamo alcun avviso.
Esempio 2: hai tentato di creare una legenda prima di creare una trama.
Supponiamo di provare a utilizzare il codice seguente per creare un grafico a linee in matplotlib con una legenda ed etichette:
import matplotlib. pyplot as plt
import pandas as pd
#define data values
df = pd. DataFrame ({' x ': [18, 22, 19, 14, 14, 11, 20, 28],
' y ': [5, 7, 7, 9, 12, 9, 9, 4],
' z ': [11, 8, 10, 6, 6, 5, 9, 12]})
#attempt to add legend to plot
plt. legend ()
#add multiple lines to matplotlib plot
plt. plot (df[' x '], label=' x ', color=' green ')
plt. plot (df[' y '], label=' y ', color=' blue ')
plt. plot (df[' z '], label=' z ', color=' purple ')
No handles with labels found to put in legend.
Matplotlib crea il grafico a linee, ma riceviamo l’avviso No handle with label finded to put in legend .
Per evitare questo avviso, dobbiamo utilizzare plt.legend() dopo aver aggiunto le righe alla trama:
import matplotlib. pyplot as plt
import pandas as pd
#define data values
df = pd. DataFrame ({' x ': [18, 22, 19, 14, 14, 11, 20, 28],
' y ': [5, 7, 7, 9, 12, 9, 9, 4],
' z ': [11, 8, 10, 6, 6, 5, 9, 12]})
#add multiple lines to matplotlib plot
plt. plot (df[' x '], label=' x ', color=' green ')
plt. plot (df[' y '], label=' y ', color=' blue ')
plt. plot (df[' z '], label=' z ', color=' purple ')
#attempt to add legend to plot
plt. legend ()
Viene creata una legenda con etichette e questa volta non riceviamo alcun avviso.
Risorse addizionali
I seguenti tutorial spiegano come correggere altri errori comuni in Python:
Come correggere l’errore chiave nei Panda
Come risolvere il problema: ValueError: impossibile convertire float NaN in int
Come risolvere il problema: ValueError: non è stato possibile trasmettere gli operandi con le forme