Следующие несколько уроков будут посвящены настройке графиков. Начнем с работы с легендой. В данном уроке будут рассмотрены следующие темы: отображение легенды, настройка ее расположения на графике, дополнительные параметры для более тонкой настройки ее внешнего вида.
- Отображение легенды
- Расположение легенды на графике
- Дополнительные параметры настройки отображения легенды
- Дополнительные материалы
Отображение легенды
Для отображения легенды на графике используется функция legend(), возможны следующие варианты ее вызова:
legend() legend(labels) legend(handles, labels)
В первом варианте в качестве меток для легенды будет использоваться метки, указанные в функциях построения графиков (параметр label):
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()
Второй вариант позволят самостоятельно указать текстовую метку для отображаемых данных:
plt.plot(x, y1, 'o-r') plt.plot(x, y2, 'o-.g') plt.legend(['L1', 'L2'])
В третьем варианте можно вручную указать соответствие линии и меток для них:
line1, = plt.plot(x, y1, 'o-b') line2, = plt.plot(x, y2, 'o-.m') plt.legend((line2, line1), ['L2', 'L1'])
Расположение легенды на графике
Место расположения легенды определяется параметром loc, которое может принимать одно из следующих значений:
Строковое описание | Код |
‘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 |
‘upper right’ | 0 |
Ниже представлен пример, реализующий различные варианты расстановки легенды через параметр loc:
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
Для более гибкого управление положением объекта можно воспользоваться параметром bbox_to_anchor функции legend(). Этому параметру присваивается кортеж, состоящий из четырех или двух элементов:
bbox_to_anchor = (x, y, width, height) bbox_to_anchor = (x, y)
Пример использования параметра bbox_to_anchor:
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))
Дополнительные параметры настройки отображения легенды
В таблице ниже представлены дополнительные параметры, которые можно использовать для более тонкой настройки легенды.
Параметр | Тип | Описание |
fontsize | int или float или {‘xx-small’, ‘x-small’, ‘small’, ‘medium’, ‘large’, ‘x-large’, ‘xx-large’} | Размера шрифта надписи легенды |
frameon | bool | Отображение рамки легенды |
framealpha | None или float | Прозрачность легенды |
facecolor | None или str | Цвет заливки |
edgecolor | None или str | Цвет рамки |
title | None или str | Текст заголовка |
title_fontsize | None или str | Размер шрифта |
Пример работы с параметрами:
plt.plot(x, y1, 'o-r', label='line 1') plt.plot(x, y2, 'o-.g', label='line 2') plt.legend(fontsize=14, shadow=True, framealpha=1, facecolor='y', edgecolor='r', title='Легенда')
Дополнительные материалы
Дополнительную информацию по работе с легендой можете найти в следующих официальных материалах проекта Matplotlib:
https://matplotlib.org/api/_as_gen/matplotlib.pyplot.legend.html#matplotlib.pyplot.legend
P.S.
Вводные уроки по “Линейной алгебре на Python” вы можете найти соответствующей странице нашего сайта. Все уроки по этой теме собраны в книге “Линейная алгебра на Python”.
Если вам интересна тема анализа данных, то мы рекомендуем ознакомиться с библиотекой Pandas. Для начала вы можете познакомиться с вводными уроками. Все уроки по библиотеке Pandas собраны в книге “Pandas. Работа с данными”.