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

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *