Spec-Zone.ru › Matplotlib 2.2

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

Параметры:
update : string

Если "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, 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: 'upper right'

Расположение легенды. Возможные значения:

Строковое обозначение Код расположения
'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 or pair of floats

Указывает произвольное расположение легенды в координатах bbox_transform (по умолчанию координаты области).

Например, чтобы расположить верхний правый угол легенды в центре области, можно использовать следующие ключевые слова:

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).

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]

Рисует все элементы, относящиеся к легенде.

END_OF_DOCUMENT_MARKER
draw_frame(b) [source]

Установить рисование рамки в значение b.

Параметры:
b : bool
get_bbox_to_anchor() [source]

Возвращает прямоугольник, к которому привязывается легенда.

get_children() [source]

Возвращает список дочерних графических элементов.

classmethod get_default_handler_map() [source]

Метод класса, возвращающий словарь обработчиков по умолчанию.

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() [source]

Возвращает список экземпляров Text в легенде.

get_title() [source]

Возвращает экземпляр Text для заголовка легенды.

get_window_extent(*args, **kwargs) [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_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, ширина, высота), масштабированные в случае необходимости с помощью размера шрифта.

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, должны быть добавлены в этот прямоугольник внутри этого метода.

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]

Обработчик для Ошибок.

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/2.2.3/api/legend_api.html

Spec-Zone.ru

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