So beheben sie das problem in python: es wurden keine handles mit beschriftungen zum einfügen in die legende gefunden


Eine Warnung, die bei der Verwendung von matplotlib auftreten kann, ist:

 No handles with labels found to put in legend.

Diese Warnung tritt normalerweise aus einem von zwei Gründen auf:

1. Sie konnten keine Beschriftungen für die Plotdaten erstellen.

2. Sie haben versucht, eine Legende zu erstellen, bevor Sie ein Diagramm erstellt haben.

Die folgenden Beispiele zeigen, wie Sie diese Warnung in beiden Szenarien vermeiden können.

Beispiel 1: Sie konnten keine Beschriftungen für die Plotdaten erstellen.

Angenommen, wir versuchen, den folgenden Code zu verwenden, um in matplotlib ein Liniendiagramm mit einer Legende und Beschriftungen zu erstellen:

 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 erstellt das Liniendiagramm, wir erhalten jedoch die Warnung No handles with labels Found to put in legend .

Um diese Warnung zu vermeiden, müssen wir das Label- Argument verwenden, um für jede Zeile im Diagramm eine Beschriftung bereitzustellen:

 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 ()

Beachten Sie, dass eine Legende mit Beschriftungen erstellt wird und wir dieses Mal keine Warnungen erhalten.

Beispiel 2: Sie haben versucht, eine Legende zu erstellen, bevor Sie ein Diagramm erstellt haben.

Angenommen, wir versuchen, den folgenden Code zu verwenden, um in matplotlib ein Liniendiagramm mit einer Legende und Beschriftungen zu erstellen:

 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 erstellt das Liniendiagramm, wir erhalten jedoch die Warnung No handles with labels Found to put in legend .

Um diese Warnung zu vermeiden, müssen wir plt.legend() verwenden , nachdem wir die Linien zum Plot hinzugefügt haben:

 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 ()

Es wird eine Legende mit Beschriftungen erstellt und dieses Mal erhalten wir keine Warnung.

Zusätzliche Ressourcen

Die folgenden Tutorials erklären, wie Sie andere häufige Fehler in Python beheben:

So beheben Sie KeyError in Pandas
So beheben Sie: ValueError: Float NaN kann nicht in int konvertiert werden
So beheben Sie: ValueError: Operanden konnten nicht mit Formen übertragen werden

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert