Jak naprawić w pythonie: nie znaleziono uchwytów z etykietami do umieszczenia w legendzie


Jednym z ostrzeżeń, które możesz napotkać podczas korzystania z matplotlib, jest:

 No handles with labels found to put in legend.

To ostrzeżenie pojawia się zwykle z jednego z dwóch powodów:

1. Nie udało się utworzyć etykiet dla danych wykresu.

2. Próbowałeś stworzyć legendę przed utworzeniem fabuły.

Poniższe przykłady pokazują, jak uniknąć tego ostrzeżenia w obu scenariuszach.

Przykład 1: Nie udało się utworzyć etykiet dla danych wykresu.

Załóżmy, że próbujemy użyć poniższego kodu do utworzenia wykresu liniowego w Matplotlib z legendą i etykietami:

 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 tworzy wykres liniowy, ale pojawia się ostrzeżenie : Nie znaleziono uchwytów z etykietami do umieszczenia w legendzie .

Aby uniknąć tego ostrzeżenia, musimy użyć argumentu label , aby podać etykietę dla każdej linii na wykresie:

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

Należy pamiętać, że legenda jest tworzona z etykietami i tym razem nie otrzymujemy żadnych ostrzeżeń.

Przykład 2: Próbowano utworzyć legendę przed utworzeniem fabuły.

Załóżmy, że próbujemy użyć poniższego kodu do utworzenia wykresu liniowego w Matplotlib z legendą i etykietami:

 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 tworzy wykres liniowy, ale pojawia się ostrzeżenie : Nie znaleziono uchwytów z etykietami do umieszczenia w legendzie .

Aby uniknąć tego ostrzeżenia, musimy użyć plt.legend() po dodaniu linii do wykresu:

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

Legenda jest tworzona z etykietami i tym razem nie otrzymujemy ostrzeżenia.

Dodatkowe zasoby

Poniższe samouczki wyjaśniają, jak naprawić inne typowe błędy w Pythonie:

Jak naprawić błąd KeyError w Pandach
Jak naprawić: ValueError: Nie można przekonwertować float NaN na int
Jak naprawić: Błąd wartości: Nie można rozgłaszać argumentów z kształtami

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *