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] -
Рисует все элементы, относящиеся к легенде.
-
-
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