Как изменить положение легенды в Matplotlib

Как изменить положение легенды в Matplotlib

Чтобы изменить положение легенды в Matplotlib, вы можете использовать функцию plt.legend() .

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

plt.legend(loc='upper left')

Расположение по умолчанию — «лучшее» — именно здесь Matplotlib автоматически находит место для легенды в зависимости от того, где он избегает охвата каких-либо точек данных.

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

  • верхний правый
  • верхний левый
  • нижний левый
  • Нижний правый
  • Правильно
  • центр слева
  • центр справа
  • нижний центр
  • верхний центр
  • центр

Вы также можете использовать аргумент bbox_to_anchor() , чтобы разместить легенду за пределами графика. Например, вы можете использовать следующий синтаксис для размещения легенды в правом верхнем углу за пределами графика:

plt.legend(bbox_to_anchor=( 1.05 , 1 ), loc='upper left', borderaxespad= 0 )

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

Пример 1: изменение положения легенды внутри графика 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]})

#add lines to plot
plt.plot(df['points'], label='Points', color='green')
plt.plot(df['assists'], label='Assists', color='steelblue')

#place legend in center right of plot
plt.legend(loc='center right', title='Metric') 

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

#add lines to plot
plt.plot(df['points'], label='Points', color='green')
plt.plot(df['assists'], label='Assists', color='steelblue')

#place legend in center right of plot
plt.legend(loc='upper left', title='Metric') 

Пример 2: изменить положение легенды за пределами графика Matplotlib

Чтобы разместить легенду за пределами графика Matplotlib, мы можем использовать аргумент bbox_to_anchor() .

Например, вот как разместить легенду за пределами верхнего правого угла графика:

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]})

#add lines to plot
plt.plot(df['points'], label='Points', color='green')
plt.plot(df['assists'], label='Assists', color='steelblue')

#place legend in center right of plot
plt.legend(bbox_to_anchor=( 1.02 , 1 ), loc='upper left', borderaxespad= 0 )

А вот как разместить легенду за пределами нижнего правого угла графика:

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]})

#add lines to plot
plt.plot(df['points'], label='Points', color='green')
plt.plot(df['assists'], label='Assists', color='steelblue')

#place legend in center right of plot
plt.legend(bbox_to_anchor=( 1.02 , 0.1 ), loc='upper left', borderaxespad= 0 ) 

Подробное объяснение аргумента bbox_to_anchor() см. в документации по matplotlib.

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

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

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

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