Como corrigir em python: não foram encontrados identificadores com rótulos para colocar na legenda


Um aviso que você pode encontrar ao usar o matplotlib é:

 No handles with labels found to put in legend.

Esse aviso geralmente ocorre por um dos dois motivos:

1. Você não conseguiu criar rótulos para os dados do gráfico.

2. Você tentou criar uma legenda antes de criar um gráfico.

Os exemplos a seguir mostram como evitar esse aviso em ambos os cenários.

Exemplo 1: Você não conseguiu criar rótulos para os dados do gráfico.

Suponha que estejamos tentando usar o seguinte código para criar um gráfico de linhas em matplotlib com legenda e rótulos:

 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 cria o gráfico de linhas, mas recebemos o aviso No handles with labels found to put in legend .

Para evitar esse aviso, devemos usar o argumento label para fornecer um rótulo para cada linha do gráfico:

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

Observe que uma legenda é criada com rótulos e não recebemos nenhum aviso desta vez.

Exemplo 2: Você tentou criar uma legenda antes de criar um gráfico.

Suponha que estejamos tentando usar o seguinte código para criar um gráfico de linhas em matplotlib com legenda e rótulos:

 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 cria o gráfico de linhas, mas recebemos o aviso No handles with labels found to put in legend .

Para evitar este aviso, precisamos usar plt.legend() após adicionar as linhas ao gráfico:

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

Uma legenda é criada com rótulos e desta vez não recebemos nenhum aviso.

Recursos adicionais

Os tutoriais a seguir explicam como corrigir outros erros comuns em Python:

Como corrigir KeyError em Pandas
Como corrigir: ValueError: não é possível converter float NaN em int
Como corrigir: ValueError: os operandos não puderam ser transmitidos com formas

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *