Как изменить порядок элементов в легенде Matplotlib

Как изменить порядок элементов в легенде Matplotlib

Вы можете использовать следующий фрагмент кода, чтобы изменить порядок элементов в легенде 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])

В следующем примере показано, как использовать этот синтаксис на практике.

Пример: изменение порядка элементов в легенде Matplotlib

Предположим, мы создаем следующую линейную диаграмму в 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() 

Элементы в легенде расположены в том порядке, в котором мы добавили линии на график.

Однако мы можем использовать следующий синтаксис для настройки порядка элементов в легенде:

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])
Порядок легенды Matplotlib

Обратите внимание, что мы указали:

  • порядок = [1, 2, 0]

Это означает:

  • Первым элементом в легенде должна быть метка, которая изначально находилась в индексной позиции 1 старой легенды («Ассисты»).
  • Вторым элементом в легенде должна быть метка, которая изначально находилась в индексной позиции 2 старой легенды («Отскоки»).
  • Третьим элементом в легенде должна быть метка, которая изначально находилась в индексной позиции 0 старой легенды («Точки»).

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные операции в Matplotlib:

Как изменить положение легенды в Matplotlib
Как разместить легенду за пределами графика Matplotlib
Как изменить размер шрифта легенды в Matplotlib

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.