matplotlib.figure.Figure.legend
- Figure.legend(*args, **kwargs)[source]
-
Разместить легенду на рисунке.
Возможные варианты вызова:
legend() legend(handles, labels) legend(handles=handles) legend(labels)
Эти варианты вызова соответствуют различным способам использования этого метода:
1. Автоматическое определение элементов для отображения в легенде
Элементы, которые должны быть добавлены в легенду, автоматически определяются, если вы не передаете никаких дополнительных аргументов.
В этом случае метки берутся из объекта-графического элемента. Вы можете указать их при создании элемента или вызвав метод
set_label()для этого элемента:ax.plot([1, 2, 3], label='Inline label') fig.legend()
или:
line, = ax.plot([1, 2, 3]) line.set_label('Label via method') fig.legend()Конкретные линии могут быть исключены из автоматического выбора элементов легенды, если метка начинается с символа подчеркивания. Это значение по умолчанию для всех графических элементов, поэтому вызов
Figure.legendбез аргументов и без ручного задания меток не приведет к отображению легенды.2. Явное указание графических элементов и меток в легенде
Для полного контроля над тем, какие графические элементы имеют запись в легенде, можно передать итерируемый объект графических элементов, за которым следует итерируемый объект меток легенды:
fig.legend([line1, line2, line3], ['label1', 'label2', 'label3'])
3. Явное указание графических элементов в легенде
Это аналогично пункту 2, но метки берутся из свойств меток самих графических элементов. Пример:
line1, = ax1.plot([1, 2, 3], label='label1') line2, = ax2.plot([1, 2, 3], label='label2') fig.legend(handles=[line1, line2])
4. Подписывание существующих элементов графика
Не рекомендуется
Этот вариант вызова не рекомендуется, так как связь между элементами графика и метками определяется только их порядком и может легко привести к путанице.
Чтобы создать легенду для всех графических элементов на всех осях, вызовите эту функцию с итерируемым объектом строк, по одной строке для каждого элемента легенды. Например:
fig, (ax1, ax2) = plt.subplots(1, 2) ax1.plot([1, 3, 5], color='blue') ax2.plot([2, 4, 6], color='red') fig.legend(['the blues', 'the reds'])
- Параметры:
-
-
handlesсписок
Artist, необязательно -
Список графических элементов (линий, областей), которые нужно добавить в легенду. Используйте вместе с параметром labels, если вам нужен полный контроль над тем, что отображается в легенде, и описанный выше механизм автоматического создания недостаточно.
Длина списков handles и labels должна быть одинаковой. В противном случае списки будут усечены до меньшей длины.
- labelsсписок строк, необязательно
-
Список меток, которые будут отображаться рядом с графическими элементами. Используйте вместе с параметром handles, если вам нужен полный контроль над тем, что отображается в легенде, и описанный выше механизм автоматического создания недостаточно.
-
handlesсписок
- Возвращаемое значение:
-
Legend
- Другие параметры:
-
- locстрока или пара чисел с плавающей запятой, по умолчанию: 'верхний правый'
-
Расположение легенды.
Строки
'upper left','upper right','lower left','lower right'размещают легенду в соответствующем углу рисунка.Строки
'upper center','lower center','center left','center right'размещают легенду в центре соответствующей стороны рисунка.Строка
'center'размещает легенду в центре рисунка.Расположение также может быть 2-кортежем, содержащим координаты левого нижнего угла легенды в координатах рисунка (в этом случае bbox_to_anchor будет проигнорирован).
Для обратной совместимости,
'center right'(но не другие расположения) также может быть написано как'right', а каждое расположение в виде "строки" также может быть задано числовым значением:Строковое расположение
Код расположения
'best' (только для осей)
0
'верхний правый'
1
'верхний левый'
2
'нижний левый'
3
'нижний правый'
4
'правый'
5
'центр слева'
6
'центр справа'
7
'нижний центр'
8
'верхний центр'
9
'центр'
10
Если рисунок использует менеджер ограниченной компоновки, строковые коды аргумента ключевого слова loc могут улучшить поведение компоновки с использованием префикса 'outside'. Существует неоднозначность в углах, поэтому 'outside верхний правый' создаст пространство для легенды над остальными осями в компоновке, а 'outside правый верхний' создаст пространство справа от компоновки. Помимо значений loc, перечисленных выше, у нас есть 'outside правый верхний', 'outside правый нижний', 'outside левый верхний' и 'outside левый нижний'. См. Руководство по легендам для получения более подробной информации.
-
bbox_to_anchor
BboxBase, 2-кортеж или 4-кортеж чисел с плавающей запятой -
Прямоугольник, используемый для позиционирования легенды совместно с loc. По умолчанию
axes.bbox(если вызвана как методAxes.legend) илиfigure.bbox(еслиFigure.legend). Этот аргумент позволяет произвольное размещение легенды.Координаты прямоугольника интерпретируются в системе координат, заданной bbox_transform, по умолчанию в координатах осей или рисунка, в зависимости от того, какой
legendвызывается.Если задан 4-кортеж или
BboxBase, то он задаёт прямоугольник(x, y, width, height)в котором размещается легенда. Чтобы разместить легенду в наилучшем расположении в правом нижнем квадранте осей (или рисунка):loc='best', bbox_to_anchor=(0.5, 0., 0.5, 0.5)
2-кортеж
(x, y)размещает угол легенды, заданный loc, в точках x, y. Например, чтобы расположить верхний правый угол легенды в центре осей (или рисунка), можно использовать следующие ключевые слова:loc='upper right', bbox_to_anchor=(0.5, 0.5)
- ncolsцелое число, по умолчанию: 1
-
Количество столбцов в легенде.
Для обратной совместимости также поддерживается написание ncol, но это не рекомендуется. Если оба заданы, ncols имеет приоритет.
-
propNone или
FontPropertiesили словарь -
Свойства шрифта легенды. Если None (по умолчанию), будут использоваться текущие настройки
matplotlib.rcParams. - fontsizeцелое число или {'xx-small', 'x-small', 'small', 'medium', 'large', 'x-large', 'xx-large'}
-
Размер шрифта легенды. Если значение является числовым, размер будет абсолютным размером шрифта в пунктах. Строковые значения относятся к текущему размеру шрифта по умолчанию. Этот аргумент используется только если prop не указан.
-
labelcolorстрока или список, по умолчанию:
rcParams["legend.labelcolor"](по умолчанию:'None') -
Цвет текста в легенде. Либо допустимая строка цвета (например, 'red'), либо список строковых значений цвета. Цвет метки также может быть настроен для соответствия цвету линии или маркера с использованием 'linecolor', 'markerfacecolor' (или 'mfc'), или 'markeredgecolor' (или 'mec').
Цвет метки можно задать глобально с помощью
rcParams["legend.labelcolor"](по умолчанию:'None'). Если None, используйтеrcParams["text.color"](по умолчанию:'black'). -
numpointsцелое число, по умолчанию:
rcParams["legend.numpoints"](по умолчанию:1) -
Количество точек маркера в легенде при создании записи легенды для
Line2D(линия). -
scatterpointsцелое число, по умолчанию:
rcParams["legend.scatterpoints"](по умолчанию:1) -
Количество точек маркера в легенде при создании записи легенды для
PathCollection(диаграмма рассеяния). -
scatteryoffsetsитерируемый список чисел с плавающей запятой, по умолчанию:
[0.375, 0.5, 0.3125] -
Вертикальное смещение (относительно размера шрифта) для маркеров, созданных для записи легенды диаграммы рассеяния. 0,0 находится в основании текста легенды, а 1,0 — вверху. Чтобы отобразить все маркеры на одной высоте, установите значение в
[0.5]. -
markerscaleвещественное число, по умолчанию:
rcParams["legend.markerscale"](по умолчанию:1.0) -
Относительный размер маркеров легенды по сравнению с первоначально нарисованными.
- markerfirstлогическое значение, по умолчанию: True
-
Если True, маркер легенды размещается слева от метки легенды. Если False, маркер легенды размещается справа от метки легенды.
- reverseлогическое значение, по умолчанию: False
-
Если True, метки легенды отображаются в обратном порядке от входных данных. Если False, метки легенды отображаются в том же порядке, что и входные данные.
Добавлен в версии 3.7.
-
frameonлогическое значение, по умолчанию:
rcParams["legend.frameon"](по умолчанию:True) -
Определяет, должна ли легенда быть нарисована на области (рамке).
-
fancyboxлогическое значение, по умолчанию:
rcParams["legend.fancybox"](по умолчанию:True) -
Определяет, должны ли быть включены закругленные углы вокруг
FancyBboxPatch, составляющей фон легенды. -
shadowNone, логическое значение или словарь, по умолчанию:
rcParams["legend.shadow"](по умолчанию:False) -
Определяет, должен ли быть нарисован оттенок за легендой. Оттенок можно настроить с помощью ключевых слов
Patch. Настройка с помощьюrcParams["legend.shadow"](по умолчанию:False) в настоящее время не поддерживается. -
framealphaвещественное число, по умолчанию:
rcParams["legend.framealpha"](по умолчанию:0.8) -
Альфа-прозрачность фона легенды. Если shadow активирован, а framealpha —
None, значение по умолчанию игнорируется. -
facecolor"inherit" или цвет, по умолчанию:
rcParams["legend.facecolor"](по умолчанию:'inherit') -
Цвет фона легенды. Если
"inherit", использоватьrcParams["axes.facecolor"](по умолчанию:'white'). -
edgecolor"inherit" или цвет, по умолчанию:
rcParams["legend.edgecolor"](по умолчанию:'0.8') -
Цвет границы области фона легенды. Если
"inherit", использоватьrcParams["axes.edgecolor"](по умолчанию:'black'). - mode{"expand", None}
-
Если mode установлен в
"expand", легенда будет расширена по горизонтали, чтобы заполнить область осей (или bbox_to_anchor, если определяет размер легенды). -
bbox_transformNone или
Transform -
Преобразование для прямоугольника (bbox_to_anchor). Для значения
None(по умолчанию) будет использоваться преобразование осейtransAxes. - titleстрока или None
-
Заголовок легенды. По умолчанию заголовок отсутствует (
None). -
title_fontpropertiesNone или
FontPropertiesили словарь -
Свойства шрифта заголовка легенды. Если None (по умолчанию), будет использован аргумент title_fontsize, если он присутствует; если title_fontsize также None, будут использоваться текущие настройки
rcParams["legend.title_fontsize"](по умолчанию:None).
-
-
title_fontsizeint or {'xx-small', 'x-small', 'small', 'medium', 'large', 'x-large', 'xx-large'}, default:
rcParams["legend.title_fontsize"](default:None) -
Размер шрифта заголовка легенды. Примечание: это значение нельзя использовать совместно с title_fontproperties. Если вы хотите установить размер шрифта вместе с другими свойствами шрифта, используйте параметр size в title_fontproperties.
- alignment{'center', 'left', 'right'}, default: 'center'
-
Выравнивание заголовка легенды и блока записей. Записи выравниваются как единый блок, так что маркеры всегда выстраиваются в одну линию.
-
borderpadfloat, default:
rcParams["legend.borderpad"](default:0.4) -
Пробел внутри границы легенды, в единицах размера шрифта.
-
labelspacingfloat, default:
rcParams["legend.labelspacing"](default:0.5) -
Вертикальное расстояние между записями легенды, в единицах размера шрифта.
-
handlelengthfloat, default:
rcParams["legend.handlelength"](default:2.0) -
Длина маркеров легенды, в единицах размера шрифта.
-
handleheightfloat, default:
rcParams["legend.handleheight"](default:0.7) -
Высота маркеров легенды, в единицах размера шрифта.
-
handletextpadfloat, default:
rcParams["legend.handletextpad"](default:0.8) -
Отступ между маркером легенды и текстом, в единицах размера шрифта.
-
borderaxespadfloat, default:
rcParams["legend.borderaxespad"](default:0.5) -
Отступ между областью графика и границей легенды, в единицах размера шрифта.
-
columnspacingfloat, default:
rcParams["legend.columnspacing"](default:2.0) -
Отступ между столбцами, в единицах размера шрифта.
- handler_mapdict or None
-
Пользовательский словарь, сопоставляющий экземпляры или типы с обработчиком легенды. Этот handler_map обновляет стандартную карту обработчиков, находящуюся по адресу
matplotlib.legend.Legend.get_legend_handler_map. - draggablebool, default: False
-
Можно ли перетащить легенду мышкой.
-
title_fontsizeint or {'xx-small', 'x-small', 'small', 'medium', 'large', 'x-large', 'xx-large'}, default:
См. также
Примечания
Некоторые объекты не поддерживаются этой функцией. Подробнее см. Руководство по легендам.
Примеры использования matplotlib.figure.Figure.legend
© 2012–2023 Matplotlib Development Team. All rights reserved.
Licensed under the Matplotlib License Agreement.
https://matplotlib.org/stable/api/_as_gen/matplotlib.figure.Figure.legend.html