legend и legend_handler
matplotlib.legend
Модуль legend определяет класс Legend, который отвечает за отрисовку легенд, связанных с осями и/или фигурами.
Важно
Вероятно, вам никогда не придётся создавать экземпляр Legend вручную. Большинство пользователей обычно создают легенду с помощью функции legend(). Для получения более подробной информации о легендах также есть руководство по легендам.
Класс Legend можно рассматривать как контейнер для элементов управления легендой и текстов легенды. Создание соответствующих элементов управления легендой из элементов графика на осях или фигурах (например, линий, областей и т. д.) определяется отображением обработчика, которое определяет сопоставление между элементами графика и элементами управления легендой, которые должны использоваться (стандартные элементы управления легендой определены в модуле legend_handler). Обратите внимание, что не все типы элементов графика пока поддерживаются легендой по умолчанию, но можно расширить возможности обработчика легенды для поддержки произвольных объектов. Подробную информацию см. в руководстве по легендам.
-
class matplotlib.legend.DraggableLegend(legend, use_blit=False, update='loc')[source] -
Базовое класс:
matplotlib.offsetbox.DraggableOffsetBoxОбёртка вокруг
Legendдля поддержки перетаскивания мышью.Параметры: -
legend : Legend -
Экземпляр
Legendдля обёртки. -
use_blit : bool, optional -
Использовать кеширование для более быстрого составления изображения. Подробности см. в FuncAnimation.
-
update : {'loc', 'bbox'}, optional -
Если "loc", обновить параметр loc легенды после завершения. Если "bbox", обновить параметр bbox_to_anchor.
-
artist_picker(legend, evt)[source]
-
finalize_offset()[source]
-
-
class matplotlib.legend.Legend(parent, handles, labels, loc=None, numpoints=None, markerscale=None, markerfirst=True, scatterpoints=None, scatteryoffsets=None, prop=None, fontsize=None, borderpad=None, labelspacing=None, handlelength=None, handleheight=None, handletextpad=None, borderaxespad=None, columnspacing=None, ncol=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)[source] -
Bases:
matplotlib.artist.ArtistРазмещает легенду на осях в указанном месте loc.
Параметры: -
parent : Axes or Figure -
Объект, содержащий легенду.
-
handles : sequence of Artist -
Список объектов-графиков (линий, областей), которые необходимо добавить в легенду.
-
labels : sequence of strings -
Список меток, которые должны отображаться рядом с объектами-графиками. Длина списков handles и labels должна быть одинаковой. Если нет, то они будут урезаны до меньшей длины.
Другие параметры: -
loc : int or string or pair of floats, default: rcParams["legend.loc"] ('best' for axes, 'upper right' for figures) -
Местоположение легенды. Возможные значения:
Строковое обозначение местоположения Код местоположения '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 Также может быть кортежем из 2-х чисел, задающим координаты левого нижнего угла легенды в система координат осей (в этом случае параметр
bbox_to_anchorбудет игнорироваться). -
bbox_to_anchor : BboxBase, 2-tuple, or 4-tuple of floats -
Прямоугольник, используемый для размещения легенды в сочетании с параметром loc. По умолчанию
axes.bbox(если вызывается как методAxes.legend) илиfigure.bbox(если вызываетсяFigure.legend). Этот параметр позволяет произвольно размещать легенду.Координаты bbox интерпретируются в системе координат, заданной
bbox_transform, по умолчанию - координаты осей или фигуры, в зависимости от того, какой метод вызывается.Если задан кортеж из 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)
-
ncol : integer -
Количество столбцов в легенде. По умолчанию 1.
-
prop : None or matplotlib.font_manager.FontProperties or dict -
Свойства шрифта легенды. Если None (по умолчанию), будут использоваться текущие значения
matplotlib.rcParams. -
fontsize : int or float or {'xx-small', 'x-small', 'small', 'medium', 'large', 'x-large', 'xx-large'} -
Управляет размером шрифта легенды. Если значение числовое, размер будет абсолютным размером шрифта в пунктах. Строковые значения относительны к текущему размеру шрифта по умолчанию. Этот параметр используется только если
propне указан. -
numpoints : None or int -
Количество точек маркера в легенде при создании записи легенды для
Line2D(линии). По умолчаниюNone, которое будет взято изrcParams["legend.numpoints"]. -
scatterpoints : None or int -
Количество точек маркера в легенде при создании записи легенды для
PathCollection(диаграммы рассеяния). По умолчаниюNone, которое будет взято изrcParams["legend.scatterpoints"]. -
scatteryoffsets : iterable of floats -
Вертикальное смещение (относительно размера шрифта) для маркеров, созданных для записи легенды диаграммы рассеяния. 0.0 - у основания текста легенды, 1.0 - вверху. Для размещения всех маркеров на одной высоте установите в
[0.5]. По умолчанию[0.375, 0.5, 0.3125]. -
markerscale : None or int or float -
Относительный размер маркеров легенды по сравнению с первоначальными. По умолчанию
None, которое будет взято изrcParams["legend.markerscale"]. -
markerfirst : bool -
Если True, маркер легенды размещается слева от метки легенды. Если False, маркер легенды размещается справа от метки легенды. По умолчанию True.
-
frameon : None or bool -
Управляет тем, должна ли легенда быть нарисованной на области (рамке). По умолчанию
None, которое будет взято изrcParams["legend.frameon"]. -
fancybox : None or bool -
Управляет тем, должны ли быть включены скругленные углы вокруг
FancyBboxPatch, составляющих фон легенды. По умолчаниюNone, которое будет взято изrcParams["legend.fancybox"]. -
shadow : None or bool -
Управляет тем, нужно ли рисовать тень за легендой. По умолчанию
None, которое будет взято изrcParams["legend.shadow"]. -
framealpha : None or float -
Управляет альфа-прозрачностью фона легенды. По умолчанию
None, которое будет взято изrcParams["legend.framealpha"]. Если тень включена и framealpha равноNone, то значение по умолчанию игнорируется. -
facecolor : None or "inherit" or a color spec -
Управляет цветом фона легенды. По умолчанию
None, которое будет взято изrcParams["legend.facecolor"]. Если"inherit", то оно будет взято изrcParams["axes.facecolor"]. -
edgecolor : None or "inherit" or a color spec -
Управляет цветом края области фона легенды. По умолчанию
None, которое будет взято изrcParams["legend.edgecolor"]Если"inherit", оно будет взято изrcParams["axes.edgecolor"]. -
mode : {"expand", None} -
Если
modeустановлено в"expand", легенда будет горизонтально расширена, чтобы заполнить область осей (илиbbox_to_anchorесли определяет размер легенды). -
bbox_transform : None or matplotlib.transforms.Transform -
Преобразование для прямоугольника (
bbox_to_anchor). Для значенияNone(по умолчанию) будет использоваться преобразование осейtransAxes. -
title : str or None -
Заголовок легенды. По умолчанию нет заголовка (
None). - title_fontsize: str or None
-
Размер шрифта заголовка легенды. По умолчанию - размер шрифта по умолчанию.
-
borderpad : float or None -
Относительное межстрочное расстояние внутри рамки легенды. Измеряется в единицах размера шрифта. По умолчанию
None, которое будет взято изrcParams["legend.borderpad"]. -
labelspacing : float or None -
Вертикальное расстояние между записями легенды. Измеряется в единицах размера шрифта. По умолчанию
None, которое будет взято изrcParams["legend.labelspacing"]. -
handlelength : float or None -
Длина ручек легенды. Измеряется в единицах размера шрифта. По умолчанию
None, которое будет взято изrcParams["legend.handlelength"]. -
handletextpad : float or None -
Отступ между ручкой легенды и текстом. Измеряется в единицах размера шрифта. По умолчанию
None, которое будет взято изrcParams["legend.handletextpad"]. -
borderaxespad : float or None -
Отступ между осями и рамкой легенды. Измеряется в единицах размера шрифта. По умолчанию
None, которое будет взято изrcParams["legend.borderaxespad"]. -
columnspacing : float or None -
Пробелы между столбцами. Измеряется в единицах размера шрифта. По умолчанию
None, которое будет взято изrcParams["legend.columnspacing"]. -
handler_map : dict or None -
Пользовательский словарь, сопоставляющий экземпляры или типы с обработчиком легенды. Это
handler_mapобновляет словарь обработчиков по умолчанию, найденный вmatplotlib.legend.Legend.get_legend_handler_map().
Примечания
Пользователи могут указать любое произвольное местоположение для легенды, используя ключевой параметр bbox_to_anchor. bbox_to_anchor может быть экземпляром BboxBase (или его производными) или кортежем из 2-х или 4-х чисел. См.
set_bbox_to_anchor()для получения дополнительной информации.Положение легенды может быть задано, установив loc в кортеж из 2-х чисел, интерпретируемый как координаты левого нижнего угла легенды в нормализованных координатах осей.
-
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(event)[source] -
Проверяет, содержит ли объект график событие мыши.
Возвращает значение истинности и словарь с информацией об объекте графика, например, какие точки содержатся в радиусе выбора. См. индивидуальные объекты для подробностей.
-
-
draggable(state=None, use_blit=False, update='loc')[source] -
Установите состояние перетаскивания — если состояние
- None: переключить текущее состояние
- True: включить перетаскивание
- False: отключить перетаскивание
Если перетаскивание включено, вы можете перетащить легенду по холсту мышью. Экземпляр помощника
DraggableLegendвозвращается, если перетаскивание включено.Параметр update управляет тем, какой параметр легенды изменяется при перетаскивании. Если update равен "loc", изменяется параметр loc легенды. Если "bbox", изменяется параметр bbox_to_anchor.
-
draw(renderer)[source] -
Отрисовать все, что относится к легенде.
-
draw_frame(b)[source] -
Установить рисование рамки в b.
Параметры: -
b : bool
-
-
get_bbox_to_anchor()[source] -
Возвращает прямоугольник, к которому будет привязана легенда.
-
get_children()[source] -
Возвращает список дочерних графических элементов.
-
classmethod get_default_handler_map()[source] -
Метод класса, возвращающий карту обработчиков по умолчанию.
-
get_draggable()[source] -
Возвращает
True, если легенда может быть перетащена,Falseв противном случае.
-
get_frame()[source] -
Возвращает экземпляры
Rectangle, используемые для обрамления легенды.
-
get_frame_on()[source] -
Получить, отображается ли прямоугольник области легенды.
-
static get_legend_handler(legend_handler_map, orig_handle)[source] -
Возвращает обработчик легенды из legend_handler_map, соответствующий orig_handler.
legend_handler_map должен быть объектом словаря (который возвращается методом get_legend_handler_map).
Сначала проверяется, является ли orig_handle ключом в legend_hanler_map, и возвращается соответствующее значение. В противном случае проверяется каждый из классов в его порядке разрешения методов. Если соответствующий ключ не найден, возвращается
None.
-
get_legend_handler_map()[source] -
Возвращает карту обработчиков.
-
get_lines()[source] -
Возвращает список экземпляров
Line2Dв легенде.
-
get_patches()[source] -
Возвращает список экземпляров
Patchв легенде.
-
get_texts()Textэкземпляров в легенде.
-
-
get_tightbbox(renderer)[source] -
Подобно
Legend.get_window_extent, но использует прямоугольник для легенды.Параметры: -
renderer : RendererBase instance -
рендерер, который будет использоваться для отрисовки фигур (т.е.
fig.canvas.get_renderer())
Возвращает: -
`.BboxBase` : containing the bounding box in figure pixel co-ordinates.
-
-
get_title()Textэкземпляр для заголовка легенды.
-
get_window_extent(renderer=None)[source] -
Возвращает область легенды.
-
set_bbox_to_anchor(bbox, transform=None)[source] -
Установить прямоугольник, к которому будет привязана легенда.
bbox может быть
- Экземпляр
BboxBase - Кортеж из
(left, bottom, width, height)в заданном преобразовании (нормализованные координаты осей, если None) - Кортеж из
(left, bottom), где ширина и высота предполагаются нулевыми.
- Экземпляр
-
classmethod set_default_handler_map(handler_map)[source] -
Метод класса для установки карты обработчиков по умолчанию.
-
set_draggable(state, use_blit=False, update='loc')[source] -
Включить или отключить поддержку перетаскивания мышью легенды.
Параметры: -
state : bool -
Включить или отключить перетаскивание мышью.
-
use_blit : bool, optional -
Использовать кеширование для более быстрого композирования изображений. Подробнее см. FuncAnimation.
-
update : {'loc', 'bbox'}, optional -
Параметр легенды, который будет изменён при перетаскивании:
- 'loc': обновить параметр loc легенды
- 'bbox': обновить параметр bbox_to_anchor легенды
Возвращает: - Если *state* равен ``True``, возвращается помощник `~.DraggableLegend`
- экземпляр. В противном случае возвращается ``None``.
-
-
set_frame_on(b)[source] -
Установить, отображается ли прямоугольник области легенды.
Параметры: -
b : bool
-
-
set_title(title, prop=None)[source] -
Установите заголовок легенды. Фонт может быть задан параметром prop.
-
classmethod update_default_handler_map(handler_map)[source] -
Метод класса для обновления карты обработчиков по умолчанию.
-
zorder = 5
-
matplotlib.legend_handler
В этом модуле определены обработчики легенд по умолчанию.
Перед прочтением этой документации настоятельно рекомендуется ознакомиться с руководством по легендам.
Обработчики легенды должны быть вызываемым объектом со следующим сигнатуром.
legend_handler(legend, orig_handle, fontsize, handlebox)
Где legend — сама легенда, orig_handle — исходный график, fontsize — размер шрифта в пикселях, а handlebox — экземпляр OffsetBox. Внутри вызова необходимо создать соответствующие элементы управления (используя соответствующие свойства из legend и/или orig_handle) и добавить их в handlebox. Элементы управления должны быть масштабированы в соответствии с размером шрифта (обратите внимание, что размер указан в пикселях, т. е. это значение, масштабированное относительно dpi).
Этот модуль включает определение нескольких классов обработчиков легенды, производных от базового класса (HandlerBase) со следующим методом:
def legend_artist(self, legend, orig_handle, fontsize, handlebox):
-
class matplotlib.legend_handler.HandlerBase(xpad=0.0, ypad=0.0, update_func=None)[source] -
Базовый класс для обработчиков легенд по умолчанию.
Производные классы должны переопределять метод create_artists, у которого есть следующий сигнатур:
def create_artists(self, legend, orig_handle, xdescent, ydescent, width, height, fontsize, trans):Переопределенный метод должен создать элементы управления заданного преобразования, которые помещаются в заданные размеры (xdescent, ydescent, ширина, высота), которые масштабируются с помощью fontsize, если это необходимо.
-
adjust_drawing_area(legend, orig_handle, xdescent, ydescent, width, height, fontsize)[source]
-
create_artists(legend, orig_handle, xdescent, ydescent, width, height, fontsize, trans)[source]
-
legend_artist(legend, orig_handle, fontsize, handlebox)[source] -
Возвращает элемент управления, который генерирует HandlerBase для данного исходного элемента/обработчика.
Параметры: -
legend : matplotlib.legend.Legend instance -
Легенда, для которой создаются эти элементы управления легендой.
-
orig_handle : matplotlib.artist.Artist or similar -
Объект, для которого создаются эти элементы управления легендой.
-
fontsize : float or int -
Размер шрифта в пикселях. Создаваемые элементы управления должны быть масштабированы в соответствии с заданным размером шрифта.
-
handlebox : matplotlib.offsetbox.OffsetBox instance -
Фрейм, который был создан для размещения элементов управления этого элемента легенды. Элементы управления, созданные в методе
legend_artist, должны быть добавлены в этот handlebox внутри этого метода.
-
-
update_prop(legend_handle, orig_handle, legend)[source]
-
-
class matplotlib.legend_handler.HandlerCircleCollection(yoffsets=None, sizes=None, **kw)[source] -
Обработчик для
CircleCollections.-
create_collection(orig_handle, sizes, offsets, transOffset)[source]
-
-
class matplotlib.legend_handler.HandlerErrorbar(xerr_size=0.5, yerr_size=None, marker_pad=0.3, numpoints=None, **kw)[source] -
Обработчик для Errorbar.
-
create_artists(legend, orig_handle, xdescent, ydescent, width, height, fontsize, trans)[source]
-
get_err_size(legend, xdescent, ydescent, width, height, fontsize)[source]
-
-
class matplotlib.legend_handler.HandlerLine2D(marker_pad=0.3, numpoints=None, **kw)[source] -
Обработчик для
Line2Dэкземпляров.Параметры: -
marker_pad : float -
Отступ между точками в элементе легенды.
-
numpoints : int -
Количество точек для отображения в элементе легенды.
Примечания
Любые другие ключевые аргументы передаются в
HandlerNpoints.-
create_artists(legend, orig_handle, xdescent, ydescent, width, height, fontsize, trans)[source]
-
-
class matplotlib.legend_handler.HandlerLineCollection(marker_pad=0.3, numpoints=None, **kw)[source] -
Обработчик для
LineCollectionэкземпляров.Параметры: -
marker_pad : float -
Отступ между точками в элементе легенды.
-
numpoints : int -
Количество точек для отображения в элементе легенды.
Примечания
Любые другие ключевые аргументы передаются в
HandlerNpoints.-
create_artists(legend, orig_handle, xdescent, ydescent, width, height, fontsize, trans)[source]
-
get_numpoints(legend)[source]
-
-
class matplotlib.legend_handler.HandlerNpoints(marker_pad=0.3, numpoints=None, **kw)[source] -
Обработчик легенды, который отображает numpoints точек в элементе легенды.
Параметры: -
marker_pad : float -
Отступ между точками в элементе легенды.
-
numpoints : int -
Количество точек для отображения в элементе легенды.
Примечания
Любые другие ключевые аргументы передаются в
HandlerBase.-
get_numpoints(legend)[source]
-
get_xdata(legend, xdescent, ydescent, width, height, fontsize)[source]
-
-
class matplotlib.legend_handler.HandlerNpointsYoffsets(numpoints=None, yoffsets=None, **kw)[source] -
Обработчик легенды, который отображает numpoints точек в легенде и позволяет индивидуально смещать их по оси y.
Параметры: -
numpoints : int -
Количество точек для отображения в элементе легенды.
-
yoffsets : array of floats -
Список из numpoints значений смещения по оси y для каждой точки в элементе легенды.
Примечания
Любые другие ключевые аргументы передаются в
HandlerNpoints.-
get_ydata(legend, xdescent, ydescent, width, height, fontsize)[source]
-
-
class matplotlib.legend_handler.HandlerPatch(patch_func=None, **kw)[source] -
Обработчик для экземпляров
Patch.Параметры: -
patch_func : callable, optional -
Функция, создающая элемент легенды. patch_func должна иметь следующий сигнатура:
def patch_func(legend=legend, orig_handle=orig_handle, xdescent=xdescent, ydescent=ydescent, width=width, height=height, fontsize=fontsize)После этого созданный элемент будет иметь вызываемый метод
update_propи к нему будет применено соответствующее преобразование.
Примечания
Любые другие ключевые аргументы передаются в
HandlerBase.-
create_artists(legend, orig_handle, xdescent, ydescent, width, height, fontsize, trans)[source]
-
-
class matplotlib.legend_handler.HandlerPathCollection(yoffsets=None, sizes=None, **kw)[source] -
Обработчик для
PathCollections, используемых вscatter.-
create_collection(orig_handle, sizes, offsets, transOffset)[source]
-
-
class matplotlib.legend_handler.HandlerPolyCollection(xpad=0.0, ypad=0.0, update_func=None)[source] -
Обработчик для
PolyCollection, используемых вfill_betweenиstackplot.-
create_artists(legend, orig_handle, xdescent, ydescent, width, height, fontsize, trans)[source]
-
-
class matplotlib.legend_handler.HandlerRegularPolyCollection(yoffsets=None, sizes=None, **kw)[source] -
Обработчик для
RegularPolyCollections.-
create_artists(legend, orig_handle, xdescent, ydescent, width, height, fontsize, trans)[source]
-
create_collection(orig_handle, sizes, offsets, transOffset)[source]
-
get_numpoints(legend)[source]
-
get_sizes(legend, orig_handle, xdescent, ydescent, width, height, fontsize)[source]
-
update_prop(legend_handle, orig_handle, legend)[source]
-
-
class matplotlib.legend_handler.HandlerStem(marker_pad=0.3, numpoints=None, bottom=None, yoffsets=None, **kw)[source] -
Обработчик для графиков, созданных с помощью
stem.Параметры: -
marker_pad : float -
Отступ между точками в элементе легенды. По умолчанию 0.3.
-
numpoints : int, optional -
Количество точек для отображения в элементе легенды.
-
bottom : float, optional -
yoffsets : array of floats, optional -
Список из numpoints значений смещения по оси y для каждой точки в элементе легенды.
Примечания
Любые другие ключевые аргументы передаются в
HandlerNpointsYoffsets.-
create_artists(legend, orig_handle, xdescent, ydescent, width, height, fontsize, trans)[source]
-
get_ydata(legend, xdescent, ydescent, width, height, fontsize)[source]
-
-
class matplotlib.legend_handler.HandlerTuple(ndivide=1, pad=None, **kwargs)[source] -
Обработчик для кортежей.
Дополнительные ключевые аргументы передаются в
HandlerBase.Параметры: -
ndivide : int, optional -
Количество секций, на которые будет разделена область легенды. Если None, используется длина входного кортежа. По умолчанию 1.
-
pad : float, optional -
Если None, используется
legend.borderpadпо умолчанию. В единицах доли размера шрифта. По умолчанию None.
-
create_artists(legend, orig_handle, xdescent, ydescent, width, height, fontsize, trans)[source]
-
-
matplotlib.legend_handler.update_from_first_child(tgt, src)[source]
© 2012–2018 Matplotlib Development Team. All rights reserved.
Licensed under the Matplotlib License Agreement.
https://matplotlib.org/3.0.0/api/legend_api.html