Como alterar a ordem dos elementos na legenda do matplotlib
Você pode usar o seguinte trecho de código para alterar a ordem dos elementos em uma legenda Matplotlib:
#get handles and labels handles, labels = plt. gca (). get_legend_handles_labels () #specify order of items in legend order = [1,2,0] #add legend to plot plt. legend ([handles[idx] for idx in order],[labels[idx] for idx in order])
O exemplo a seguir mostra como usar essa sintaxe na prática.
Exemplo: alterar a ordem dos elementos na legenda Matplotlib
Suponha que criemos o seguinte gráfico de linhas no Matplotlib:
import pandas as pd import matplotlib. pyplot as plt #create data df = pd. DataFrame ({'points': [11, 17, 16, 18, 22, 25, 26, 24, 29], 'assists': [5, 7, 7, 9, 12, 9, 9, 4, 8], 'rebounds': [6, 8, 8, 10, 14, 12, 12, 10, 11]}) #add lines to plot plt. plot (df['points'], label='Points', color='green') plt. plot (df['assists'], label='Assists', color='steelblue') plt. plot (df['rebounds'], label='Rebounds', color='purple') #add legend plt. legend ()
Os elementos da legenda são colocados na ordem em que adicionamos as linhas ao gráfico.
No entanto, podemos usar a seguinte sintaxe para personalizar a ordem dos elementos na legenda:
import pandas as pd import matplotlib. pyplot as plt #create data df = pd. DataFrame ({'points': [11, 17, 16, 18, 22, 25, 26, 24, 29], 'assists': [5, 7, 7, 9, 12, 9, 9, 4, 8], 'rebounds': [6, 8, 8, 10, 14, 12, 12, 10, 11]}) #add lines to plot plt. plot (df['points'], label='Points', color='green') plt. plot (df['assists'], label='Assists', color='steelblue') plt. plot (df['rebounds'], label='Rebounds', color='purple') #get handles and labels handles, labels = plt. gca (). get_legend_handles_labels () #specify order of items in legend order = [1,2,0] #add legend to plot plt. legend ([handles[idx] for idx in order],[labels[idx] for idx in order])
Observe que especificamos:
- ordem = [1, 2, 0]
Que significa:
- O primeiro item da legenda deve ser o rótulo que estava originalmente na posição 1 do índice da legenda antiga (“Ajuda”).
- O segundo elemento da legenda deve ser o rótulo que estava originalmente na posição de índice 2 da legenda antiga (“Bounces”)
- O terceiro elemento da legenda deve ser o rótulo que estava originalmente na posição de índice 0 da legenda antiga (“Pontos”)
Recursos adicionais
Os tutoriais a seguir explicam como realizar outras operações comuns no Matplotlib:
Como alterar a posição de uma legenda no Matplotlib
Como colocar a legenda fora de um gráfico Matplotlib
Como alterar o tamanho da fonte da legenda no Matplotlib