Spec-Zone.ru › Matplotlib 3.0

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]
END_OF_DOCUMENT_MARKER
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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API