Opgelost in python: geen handvatten met labels gevonden om in de legenda te plaatsen
Een waarschuwing die u kunt tegenkomen bij het gebruik van matplotlib is:
No handles with labels found to put in legend.
Deze waarschuwing treedt meestal op om een van de volgende twee redenen:
1. Het is u niet gelukt om labels voor de plotgegevens aan te maken.
2. U heeft geprobeerd een legenda te maken voordat u een plot maakte.
De volgende voorbeelden laten zien hoe u deze waarschuwing in beide scenario’s kunt vermijden.
Voorbeeld 1: Het is u niet gelukt labels voor de plotgegevens aan te maken.
Stel dat we de volgende code proberen te gebruiken om een lijndiagram in matplotlib te maken met een legenda en labels:
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 maakt de lijnplot, maar we krijgen de waarschuwing Geen handvatten met labels gevonden om in de legenda te plaatsen .
Om deze waarschuwing te vermijden, moeten we het label- argument gebruiken om een label voor elke regel in de plot op te geven:
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 ()
Houd er rekening mee dat er een legenda wordt gemaakt met labels en dat we deze keer geen waarschuwingen krijgen.
Voorbeeld 2: U hebt geprobeerd een legenda te maken voordat u een plot maakte.
Stel dat we de volgende code proberen te gebruiken om een lijndiagram in matplotlib te maken met een legenda en labels:
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 maakt de lijnplot, maar we krijgen de waarschuwing Geen handvatten met labels gevonden om in de legenda te plaatsen .
Om deze waarschuwing te vermijden, moeten we plt.legend() gebruiken na het toevoegen van de regels aan de plot:
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 ()
Er wordt een legenda gemaakt met labels en deze keer krijgen we geen waarschuwing.
Aanvullende bronnen
In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende fouten in Python kunt oplossen:
Hoe KeyError in Panda’s te repareren
Oplossing: ValueError: Kan float NaN niet naar int converteren
Oplossing: ValueError: Operanden konden niet worden uitgezonden met vormen