Шаг 24.
Язык Python. Визуализация данных. Библиотека Matplotlib. Настройка элементов графика. Работа с легендой. Расположение легенды на графике

    На этом шаге мы рассмотрим различные способы расположения легенды на графике.

    Место расположения легенды определяется параметром loc, который может принимать одно из значений, указанных в таблице 1.

Таблица 1. Параметры расположения легенды на графике
Строковое описание Код
'best' 0
'upper right' 1
'upper left' 2
'lower left' 3
'lower right' 4
'right' 5
'center left' 6
'center right' 7
'lower center' 8
'upper center' 9
'center' 10
Ниже представлен пример, демонстрирующий различные варианты расположения легенды через параметр loc:

import matplotlib.pyplot as plt

x = [1, 5, 10, 15, 20]
y1 = [1, 7, 3, 5, 11]
y2 = [4, 3, 1, 8, 12]
locs = ['best', 'upper right', 'upper left', 'lower left',
        'lower right', 'right', 'center left', 'center right',
        'lower center', 'upper center', 'center']
plt.figure(figsize=(12, 12))
for i in range(3):
    for j in range(4):
        if i * 4 + j < 11:
            plt.subplot(3, 4, i * 4 + j + 1)
            plt.title(locs[i * 4 + j])
            plt.plot(x, y1, 'o-r', label='line 1')
            plt.plot(x, y2, 'o-.g', label='line 2')
            plt.legend(loc=locs[i * 4 + j])
        else:
            break

plt.show()
Архив с файлом можно взять здесь.

    Результат работы приложения изображен на рисунке 1.


Рис.1. Различные варианты расположения легенды на графике

    Для более гибкого управления расположением легенды можно воспользоваться параметром bbox_to_anchor функции legend().

    Этому параметру присваивается кортеж, состоящий из четырёх или двух элементов:

  bbox_to_anchor = (x, y, width, height) 
  bbox_to_anchor = (x, y)
где x, y - это координаты расположения легенды; width - ширина; height - высота.

    Пример использования параметра bbox_to_anchor:

import matplotlib.pyplot as plt

x = [1, 5, 10, 15, 20]
y1 = [1, 7, 3, 5, 11]
y2 = [4, 3, 1, 8, 12]
plt.plot(x, y1, 'o-r', label='line 1')
plt.plot(x, y2, 'o-.g', label='line 2')
plt.legend(bbox_to_anchor=(1, 0.6))

plt.show()
Архив с файлом можно взять здесь.

    Результат работы приложения изображен на рисунке 1.


Рис.2. Расположение легенды вне поля графика

    На следующем шаге мы рассмотрим дополнительные параметры настройки легенды.




Предыдущий шаг Содержание Следующий шаг