matplotlib.legend
Модуль legend определяет класс Legend, отвечающий за отображение легенд, связанных с объектами Axes и/или фигурами.
Важно
Вряд ли вам когда-либо понадобится создавать экземпляр Legend вручную. Большинство пользователей обычно создают легенду с помощью функции legend. Дополнительные сведения о легендах можно найти в руководстве по легендам.
Класс Legend — это контейнер для дескрипторов и текстовых меток легенды.
Карта обработчиков легенды определяет, как создавать дескрипторы легенды из графических объектов (линий, областей и т. д.) на объектах Axes или фигурах. Обработчики легенды по умолчанию определены в модуле legend_handler. Хотя обработчики легенды по умолчанию поддерживают не все типы графических объектов, можно определить собственные обработчики легенды для поддержки произвольных объектов.
Дополнительные сведения см. в :ref`<legend_guide>`.
- classmatplotlib.legend.DraggableLegend(legend, use_blit=False, update='loc')[исходный код]
-
Базовые классы:
DraggableOffsetBoxОбёртка над объектом
Legend, обеспечивающая перетаскивание мышью.- Параметры:
-
-
legend
Legend -
Экземпляр
Legend, который нужно обернуть. - use_blitbool, необязательный
-
Использовать блиттинг для ускорения композиции изображений. Подробности см. в FuncAnimation.
- update{'loc', 'bbox'}, необязательный
-
Если задано значение "loc", при завершении обновляется параметр легенды loc. Если задано значение "bbox", обновляется параметр bbox_to_anchor.
-
legend
- finalize_offset()[исходный код]
- classmatplotlib.legend.Legend(parent, handles, labels, *, loc=None, numpoints=None, markerscale=None, markerfirst=True, reverse=False, scatterpoints=None, scatteryoffsets=None, prop=None, fontsize=None, labelcolor=None, borderpad=None, labelspacing=None, handlelength=None, handleheight=None, handletextpad=None, borderaxespad=None, columnspacing=None, ncols=1, mode=None, fancybox=None, shadow=None, title=None, title_fontsize=None, framealpha=None, edgecolor=None, facecolor=None, bbox_to_anchor=None, bbox_transform=None, frameon=None, handler_map=None, title_fontproperties=None, alignment='center', ncol=1, draggable=False)[исходный код]
-
Базовые классы:
ArtistРазместить легенду на рисунке/в осях.
- Параметры:
-
-
parent
AxesилиFigure -
Объект Artist, содержащий легенду.
-
handlesсписок (
Artistили кортеж объектовArtist) -
Список объектов Artist (линий, областей), которые нужно добавить в легенду.
- labelsсписок строк
-
Список меток, отображаемых рядом с объектами Artist. Длина списков handles и labels должна быть одинаковой. Если это не так, более длинный список обрезается до длины более короткого.
-
parent
- Атрибуты:
-
- legend_handles
-
Список объектов
Artist, добавленных в качестве записей легенды.Добавлено в версии 3.7.
- Другие параметры:
-
-
locстрока или пара чисел с плавающей точкой, по умолчанию:
rcParams["legend.loc"](значение по умолчанию:'best') для Axes, 'upper right' для Figure -
Расположение легенды.
Строки
'upper left','upper right','lower left','lower right'размещают легенду в соответствующем углу осей/рисунка.Строки
'upper center','lower center','center left','center right'размещают легенду по центру соответствующего края осей/рисунка.Строка
'center'размещает легенду по центру осей/рисунка.Строка
'best'размещает легенду в одном из девяти определённых на данный момент мест так, чтобы она как можно меньше перекрывала другие нарисованные объекты Artist. Этот вариант может работать довольно медленно для графиков с большим объёмом данных; скорость построения графика может повыситься, если указать конкретное расположение.Расположение также можно задать кортежем из двух элементов, указывающим координаты левого нижнего угла легенды в системе координат осей/рисунка (в этом случае bbox_to_anchor будет проигнорирован).
Для обратной совместимости
'center right'(но не любое другое расположение) также можно указать как'right', а каждое расположение в виде «строки» можно также задать числовым значением:Строка расположения
Код расположения
'best' (только Axes)
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
Если для рисунка используется менеджер компоновки constrained layout, строковые коды аргумента loc позволяют добиться более удачной компоновки с помощью префикса 'outside'. В углах возможна неоднозначность, поэтому 'outside upper right' оставит место для легенды над остальными осями в компоновке, а 'outside right upper' оставит место справа от компоновки. Помимо перечисленных выше значений loc, доступны 'outside right upper', 'outside right lower', 'outside left upper' и 'outside left lower'. Подробнее см. в руководстве по легендам.
-
bbox_to_anchor
BboxBase, кортеж из 2 или 4 чисел с плавающей точкой -
Область, которая используется для позиционирования легенды совместно с loc. По умолчанию
axes.bbox(если вызвано как методAxes.legend) илиfigure.bbox(еслиfigure.legend). Этот аргумент позволяет размещать легенду в произвольном месте.Координаты Bbox интерпретируются в системе координат, задаваемой параметром bbox_transform. По умолчанию используются координаты Axes или Figure — в зависимости от того, какой
legendвызван.Если задан кортеж из 4 элементов или
BboxBase, он задаёт ограничивающую рамку bbox(x, y, width, height), в которой размещается легенда. Чтобы поместить легенду в наилучшее место в правом нижнем квадранте Axes (или рисунка):loc='best', bbox_to_anchor=(0.5, 0., 0.5, 0.5)
Кортеж из 2 элементов
(x, y)помещает угол легенды, заданный параметром loc, в точку x, y. Например, чтобы поместить верхний правый угол легенды в центр Axes (или рисунка), можно использовать следующие ключевые аргументы: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') или список таких строк. Для параметра labelcolor также можно задать цвет линии или маркера с помощью значений 'linecolor', 'markerfacecolor' (или 'mfc') либо 'markeredgecolor' (или 'mec').
Значение labelcolor можно задать глобально с помощью
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", легенда будет растянута по горизонтали, чтобы заполнить область Axes (или bbox_to_anchor, если он задаёт размер легенды). -
bbox_transformNone или
Transform -
Преобразование ограничивающей рамки (bbox_to_anchor). При значении
None(по умолчанию) будет использоваться преобразованиеtransAxesдля Axes. - titleстрока или None
-
Заголовок легенды. По умолчанию заголовок отсутствует (
None). -
title_fontpropertiesNone,
FontPropertiesили словарь -
Свойства шрифта заголовка легенды. Если задано None (по умолчанию), будет использоваться аргумент title_fontsize, если он указан; если title_fontsize также равен None, будут использоваться текущие
rcParams["legend.title_fontsize"](значение по умолчанию:None). -
title_fontsizeцелое число или {'xx-small', 'x-small', 'small', 'medium', 'large', 'x-large', 'xx-large'}, по умолчанию:
rcParams["legend.title_fontsize"](значение по умолчанию:None) -
Размер шрифта заголовка легенды. Примечание: этот параметр нельзя использовать вместе с title_fontproperties. Чтобы задать размер шрифта одновременно с другими свойствами шрифта, используйте параметр size в title_fontproperties.
- alignment{'center', 'left', 'right'}, по умолчанию: 'center'
-
Выравнивание заголовка легенды и блока записей. Записи выравниваются как единый блок, поэтому маркеры всегда располагаются на одной линии.
-
borderpadчисло с плавающей точкой, по умолчанию:
rcParams["legend.borderpad"](значение по умолчанию:0.4) -
Величина внутренних отступов от границы легенды, в единицах размера шрифта.
-
labelspacingчисло с плавающей точкой, по умолчанию:
rcParams["legend.labelspacing"](значение по умолчанию:0.5) -
Вертикальный интервал между записями легенды, в единицах размера шрифта.
-
handlelengthчисло с плавающей точкой, по умолчанию:
rcParams["legend.handlelength"](значение по умолчанию:2.0) -
Длина элементов легенды, в единицах размера шрифта.
-
handleheightчисло с плавающей точкой, по умолчанию:
rcParams["legend.handleheight"](значение по умолчанию:0.7) -
Высота элементов легенды, в единицах размера шрифта.
-
handletextpadчисло с плавающей точкой, по умолчанию:
rcParams["legend.handletextpad"](значение по умолчанию:0.8) -
Отступ между элементом легенды и текстом, в единицах размера шрифта.
-
borderaxespadчисло с плавающей точкой, по умолчанию:
rcParams["legend.borderaxespad"](значение по умолчанию:0.5) -
Отступ между Axes и границей легенды, в единицах размера шрифта.
-
columnspacingчисло с плавающей точкой, по умолчанию:
rcParams["legend.columnspacing"](значение по умолчанию:2.0) -
Интервал между столбцами, в единицах размера шрифта.
- handler_mapсловарь или None
-
Пользовательский словарь, сопоставляющий экземпляры или типы с обработчиком легенды. Этот параметр handler_map обновляет карту обработчиков по умолчанию, доступную через
matplotlib.legend.Legend.get_legend_handler_map. - draggableлогическое значение, по умолчанию: False
-
Можно ли перетаскивать легенду с помощью мыши.
-
locстрока или пара чисел с плавающей точкой, по умолчанию:
- codes={'best': 0, 'center': 10, 'center left': 6, 'center right': 7, 'lower center': 8, 'lower left': 3, 'lower right': 4, 'right': 5, 'upper center': 9, 'upper left': 2, 'upper right': 1}
- contains(mouseevent)[источник]
-
Проверить, содержит ли объект Artist событие мыши.
- Параметры:
-
-
mouseevent
MouseEvent
-
mouseevent
- Возвращает:
-
- containsлогическое значение
-
Находится ли какое-либо значение в пределах радиуса.
- detailsсловарь
-
Словарь сведений о контексте события, специфичный для объекта Artist, например о том, какие точки находятся в радиусе выбора. Подробности см. в описании соответствующих подклассов Artist.
- draw(renderer)[источник]
-
Нарисовать объект Artist и его дочерние объекты с помощью указанного средства визуализации.
Метод ничего не делает, если объект Artist невидим (метод
Artist.get_visibleвозвращает False).- Параметры:
-
-
rendererподкласс
RendererBase.
-
rendererподкласс
Примечания
Этот метод переопределён в подклассах Artist.
- draw_frame(b)[источник]
-
Задать, следует ли рисовать область рамки легенды.
- Параметры:
-
- bлогическое значение
- get_alignment()[источник]
-
Получить значение выравнивания рамки легенды
- get_bbox_to_anchor()[источник]
-
Вернуть bbox, к которому будет привязана легенда.
- classmethodget_default_handler_map()[источник]
-
Вернуть глобальную карту обработчиков по умолчанию, общую для всех легенд.
- get_draggable()[источник]
-
Вернуть
True, если легенду можно перетаскивать, иFalseв противном случае.
- get_frame()[источник]
-
Вернуть объект
Rectangle, используемый для создания рамки легенды.
- get_frame_on()[источник]
-
Проверить, рисуется ли область рамки легенды.
- staticget_legend_handler(legend_handler_map, orig_handle)[источник]
-
Вернуть обработчик легенды из legend_handler_map, соответствующий orig_handler.
legend_handler_map должен быть объектом словаря (возвращаемым методом get_legend_handler_map).
Сначала проверяется, является ли сам orig_handle ключом в legend_handler_map; если да, возвращается соответствующее значение. В противном случае проверяются все классы в порядке разрешения методов. Если подходящий ключ не найден, возвращается
None.
- get_legend_handler_map()[источник]
-
Вернуть карту обработчиков данного экземпляра легенды.
- get_lines()[источник]
-
Вернуть список объектов
Line2Dв легенде.
- get_patches()[источник]
-
Вернуть список объектов
Patchв легенде.
- get_texts()[источник]
-
Вернуть список объектов
Textв легенде.
- get_tightbbox(renderer=None)[источник]
-
Аналогично
Artist.get_window_extent, но учитывает любое обрезание.- Параметры:
-
-
rendererподкласс
RendererBase, необязательный -
Средство визуализации, которое будет использоваться для рисования рисунков (то есть
fig.canvas.get_renderer())
-
rendererподкласс
- Возвращает:
-
-
Bboxили None -
Охватывающая ограничивающая рамка (в пиксельных координатах рисунка). Возвращает None, если после обрезания пересечение отсутствует.
-
- get_title()[источник]
-
Вернуть экземпляр
Textдля заголовка легенды.
- get_window_extent(renderer=None)[источник]
-
Получить ограничивающую рамку объекта Artist в пространстве отображения.
Ширина и высота ограничивающей рамки неотрицательны.
Подклассы должны переопределять этот метод, чтобы включать объект в расчёт ограничивающей рамки «tight». По умолчанию возвращается пустая ограничивающая рамка в точке 0, 0.
Будьте осторожны при использовании этой функции: результаты не обновятся, если изменится область окна объекта Artist. Она может измениться из-за любых изменений в стеке преобразований, например при изменении пределов Axes, размера рисунка или используемого холста (как это происходит при сохранении рисунка). Это может привести к неожиданному поведению: интерактивный рисунок будет нормально выглядеть на экране, но сохранится некорректно.
- set(*, agg_filter=<UNSET>, alignment=<UNSET>, alpha=<UNSET>, animated=<UNSET>, bbox_to_anchor=<UNSET>, clip_box=<UNSET>, clip_on=<UNSET>, clip_path=<UNSET>, draggable=<UNSET>, frame_on=<UNSET>, gid=<UNSET>, in_layout=<UNSET>, label=<UNSET>, loc=<UNSET>, mouseover=<UNSET>, ncols=<UNSET>, path_effects=<UNSET>, picker=<UNSET>, rasterized=<UNSET>, sketch_params=<UNSET>, snap=<UNSET>, title=<UNSET>, transform=<UNSET>, url=<UNSET>, visible=<UNSET>, zorder=<UNSET>)[исходный код]
-
Задать несколько свойств одновременно.
Поддерживаются следующие свойства:
Свойство
Описание
функция фильтра, которая принимает массив float размера (m, n, 3) и значение dpi, а возвращает массив размера (m, n, 3) и два смещения от левого нижнего угла изображения
{'center', 'left', 'right'}.
float или None
bool
BboxBaseили tupleBboxBaseили Nonebool
Patch или (Path, Transform) или None
bool
bool
str
bool
object
str или пара чисел с плавающей запятой, по умолчанию:
rcParams["legend.loc"](по умолчанию:'best') для Axes, 'upper right' для Figurebool
неизвестно
список объектов
AbstractPathEffectNone, bool, float или вызываемый объект
bool
(scale: float, length: float, randomness: float)
bool или None
str
str
bool
float
- set_alignment(alignment)[исходный код]
-
Задать выравнивание заголовка легенды и блока элементов.
Элементы выравниваются как единый блок, поэтому маркеры всегда находятся на одной линии.
- Параметры:
-
- alignment{'center', 'left', 'right'}.
- set_bbox_to_anchor(bbox, transform=None)[исходный код]
-
Задать ограничивающую рамку, к которой будет привязана легенда.
- Параметры:
-
-
bbox
BboxBaseили tuple -
Ограничивающую рамку можно задать следующими способами:
- Экземпляр
BboxBase - Кортеж из
(left, bottom, width, height)в заданном преобразовании (нормированные координаты осей, если значение равно None) - Кортеж из
(left, bottom), при этом ширина и высота будут считаться равными нулю. - None, чтобы убрать привязку к ограничивающей рамке и использовать рамку родительского объекта.
- Экземпляр
-
transform
Transform, необязательно -
Преобразование, применяемое к ограничивающей рамке. Если не задано, используется преобразование ограничивающей рамки родительского объекта.
-
bbox
- classmethodset_default_handler_map(handler_map)[исходный код]
-
Задать глобальную карту обработчиков по умолчанию, общую для всех легенд.
- set_draggable(state, use_blit=False, update='loc')[исходный код]
-
Включить или отключить возможность перетаскивания легенды мышью.
- Параметры:
-
- statebool
-
Определяет, включено ли перетаскивание мышью.
- use_blitbool, необязательно
-
Использовать blitting для более быстрой композиции изображения. Подробнее см. в разделе FuncAnimation.
- update{'loc', 'bbox'}, необязательно
-
Параметр легенды, который будет изменяться при перетаскивании:
- 'loc': обновить параметр loc легенды
- 'bbox': обновить параметр bbox_to_anchor легенды
- Возвращает:
-
-
DraggableLegendили None -
Если state имеет значение
True, возвращается вспомогательный экземплярDraggableLegend. В противном случае возвращается None.
-
- set_frame_on(b)[исходный код]
-
Задать, отображается ли рамка легенды.
- Параметры:
-
- bbool
- set_loc(loc=None)[исходный код]
-
Задать расположение легенды.
Добавлено в версии 3.8.
- Параметры:
-
-
locstr или пара чисел с плавающей запятой, по умолчанию:
rcParams["legend.loc"](по умолчанию:'best') для Axes, 'upper right' для Figure -
Расположение легенды.
Строки
'upper left','upper right','lower left','lower right'помещают легенду в соответствующий угол Axes/Figure.Строки
'upper center','lower center','center left','center right'помещают легенду в центр соответствующего края Axes/Figure.Строка
'center'помещает легенду в центр Axes/Figure.Строка
'best'помещает легенду в одно из девяти указанных мест, где она будет меньше всего перекрывать другие нарисованные объекты. Этот вариант может работать довольно медленно для графиков с большим объемом данных; построение графика может быть быстрее, если задать конкретное расположение.Расположение также можно задать кортежем из двух значений, определяющих координаты левого нижнего угла легенды в координатах Axes/Figure (в этом случае bbox_to_anchor будет игнорироваться).
Для обеспечения обратной совместимости
'center right'(но не другие варианты расположения) также можно записать как'right', а каждое строковое значение расположения можно также задать числом:Строковое значение расположения
Код расположения
'best' (только для Axes)
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
Если для Figure используется менеджер ограниченного макета, строковые значения аргумента loc могут обеспечить более удачное расположение, если добавить префикс 'outside'. В углах возникает неоднозначность: 'outside upper right' оставляет место для легенды над остальными осями в макете, а 'outside right upper' — справа от макета. Помимо перечисленных выше значений loc, можно использовать 'outside right upper', 'outside right lower', 'outside left upper' и 'outside left lower'. Подробнее см. в руководстве по легендам.
-
locstr или пара чисел с плавающей запятой, по умолчанию:
- set_ncols(ncols)[исходный код]
-
Задать количество столбцов.
- set_title(title, prop=None)[исходный код]
-
Задать заголовок легенды и его стиль.
- Параметры:
-
- titlestr
-
Заголовок легенды.
-
prop
font_manager.FontPropertiesилиstrилиpathlib.Path -
Свойства шрифта заголовка легенды. Если задан объект
str, он интерпретируется как шаблон fontconfig, разбираемый с помощьюFontProperties. Если задан объектpathlib.Path, он интерпретируется как абсолютный путь к файлу шрифта.
- classmethodupdate_default_handler_map(handler_map)[исходный код]
-
Обновить глобальную карту обработчиков по умолчанию, общую для всех легенд.
- zorder=5
© 2012–2026 Matplotlib Development Team. All rights reserved.
Licensed under the Matplotlib License Agreement.
https://matplotlib.org/stable/api/legend_api.html