legend и legend_handler
matplotlib.legend
Модуль legend определяет класс Legend, который отвечает за отрисовку легенды, связанной с осями и/или фигурами.
Важно
Вероятность того, что вам придётся создавать экземпляр Legend вручную, крайне низка. Большинство пользователей обычно создают легенду с помощью функции legend(). Более подробная информация о легендах также доступна в руководстве по легендам.
Класс Legend можно рассматривать как контейнер для элементов легенды и текстов легенды. Создание соответствующих элементов легенды из элементов графика на осях или фигурах (например, линий, области, и т. д.) задаётся отображением обработчиков, которое определяет отображение между элементами графика и обработчиками легенды, которые будут использоваться (стандартные обработчики легенды определены в модуле legend_handler). Обратите внимание, что не все типы элементов поддерживаются легендой по умолчанию, но можно расширить возможности обработчиков легенды для поддержки произвольных объектов. Более подробную информацию см. в руководстве по легендам.
-
class matplotlib.legend.DraggableLegend(legend, use_blit=False, update='loc') -
Bases:
matplotlib.offsetbox.DraggableOffsetBox-
update : If “loc”, update loc parameter of - легенды при завершении. Если «bbox», обновите параметр bbox_to_anchor.
-
artist_picker(legend, evt)
-
finalize_offset()
-
-
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) -
Bases:
matplotlib.artist.ArtistРазмещение легенды на осях в позиции loc. Метки — последовательность строк, а loc может быть строкой или целым числом, определяющим положение легенды.
Коды позиций:
'best' : 0, (only implemented for axes legends) 'upper right' : 1, 'upper left' : 2, 'lower left' : 3, 'lower right' : 4, 'right' : 5, (same as 'center right', for back-compatibility) 'center left' : 6, 'center right' : 7, 'lower center' : 8, 'upper center' : 9, 'center' : 10,
loc может быть кортежем значений нормализованных координат относительно родительского элемента.
- родитель: элемент, содержащий легенду
-
- элементы: список элементов (линий, областей) для добавления в
- легенду
- метки: список строк для маркировки легенды
Необязательные ключевые аргументы:
Ключевое слово Описание loc Строковый код расположения или кортеж (см. ниже). prop Свойства шрифта fontsize Размер шрифта (используется только если prop не указан) markerscale Относительный размер маркеров легенды по отношению к исходному markerfirst Если True (по умолчанию), маркер слева от метки. numpoints Количество точек в легенде для линии scatterpoints Количество точек в легенде для диаграммы рассеяния scatteryoffsets Список смещений по оси y для символов диаграммы рассеяния в легенде frameon Если True, отобразить легенду на области (рамке). fancybox Если True, отобразить рамку с закругленными углами. shadow Если True, отобразить тень за легендой. framealpha Прозрачность рамки. edgecolor Цвет обводки рамки. facecolor Цвет заливки рамки. ncol Количество столбцов borderpad Пробел внутри рамки легенды labelspacing Вертикальное расстояние между элементами легенды handlelength Длина элементов легенды handleheight Высота элементов легенды handletextpad Отступ между элементом легенды и текстом borderaxespad Отступ между осями и рамкой легенды columnspacing Расстояние между столбцами title Заголовок легенды bbox_to_anchor Прямоугольник, к которому привязана легенда. bbox_transform Преобразование для прямоугольника. transAxes если None. Параметры отступа и интервала измеряются в единицах размера шрифта. Например, размер шрифта 10 пунктов и handlelength=5 означает handlelength 50 пунктов. Значения из rcParams будут использованы, если None.
Пользователи могут указать любое произвольное расположение легенды с помощью ключевого аргумента bbox_to_anchor. bbox_to_anchor может быть экземпляром BboxBase (или его производных) или кортежем из 2 или 4 чисел с плавающей точкой. Более подробная информация в
set_bbox_to_anchor().Положение легенды можно задать, установив loc с кортежем из 2 чисел с плавающей точкой, которое интерпретируется как левый нижний угол легенды в нормализованных координатах осей.
-
codes = {'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}
-
contains(event)
-
draggable(state=None, use_blit=False, update='loc') -
Установить состояние перетаскиваемости — если состояние
- None : переключить текущее состояние
- True : включить перетаскиваемость
- False : выключить перетаскиваемость
Если перетаскиваемость включена, вы можете перетащить легенду по холсту мышью. Экземпляр DraggableLegend возвращается, если перетаскиваемость включена.
Параметр update управляет тем, какой параметр легенды изменяется при перетаскивании. Если update = «loc», изменяется параметр loc легенды. Если «bbox», изменяется параметр bbox_to_anchor.
-
draw(renderer) -
Отрисовать все, что принадлежит легенде
-
draw_frame(b) -
b — булево значение. Установить отрисовку рамки на b
-
get_bbox_to_anchor() -
Возвращает прямоугольник, к которому привязана легенда
-
get_children() -
Возвращает список дочерних элементов
-
classmethod get_default_handler_map() -
Метод класса, возвращающий отображение обработчиков по умолчанию.
-
get_frame() -
Возвращает экземпляр Rectangle, используемый для обрамления легенды
-
get_frame_on() -
Получить, отображается ли область легенды
-
static get_legend_handler(legend_handler_map, orig_handle) -
Возвращает обработчик легенды из legend_handler_map, соответствующий orig_handler.
legend_handler_map должен быть объектом словаря (который возвращается методом get_legend_handler_map).
Сначала проверяется, является ли orig_handle ключом в legend_hanler_map и возвращается связанное значение. В противном случае проверяется каждый из классов в его порядке разрешения методов. Если соответствующий ключ не найден, возвращается None.
-
get_legend_handler_map() -
Возвращает отображение обработчиков.
-
get_lines() -
Возвращает список экземпляров Line2D в легенде
-
get_patches() -
Возвращает список экземпляров patch в легенде
-
get_texts() -
Возвращает список экземпляров Text в легенде
-
get_title() -
Возвращает экземпляр Text для заголовка легенды
-
get_window_extent(*args, **kwargs) -
Возвращает область легенды
-
set_bbox_to_anchor(bbox, transform=None) -
Устанавливает прямоугольник, к которому привязана легенда.
bbox может быть экземпляром BboxBase, кортежем [left, bottom, width, height] в заданном преобразовании (нормализованные координаты оси, если None) или кортежем [left, bottom], где ширина и высота предполагаются нулевыми.
-
classmethod set_default_handler_map(handler_map) -
Метод класса для установки отображения обработчиков по умолчанию.
-
set_frame_on(b) -
Установить, отображается ли область легенды
ПРИНИМАЕТ: [True | False]
-
set_title(title, prop=None) -
Установить заголовок легенды. Свойства шрифта можно указать с помощью параметра prop.
-
classmethod update_default_handler_map(handler_map) -
Метод класса для обновления отображения обработчиков по умолчанию.
-
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) -
Базовый класс для стандартных обработчиков легенды.
Производные классы должны переопределять метод create_artists, имеющий следующий вид:
def create_artists(self, legend, orig_handle, xdescent, ydescent, width, height, fontsize, trans):Переопределенный метод должен создать объекты с заданным преобразованием, которые помещаются в заданные размеры (xdescent, ydescent, width, height), и, при необходимости, масштабированные по размеру шрифта (fontsize).
-
adjust_drawing_area(legend, orig_handle, xdescent, ydescent, width, height, fontsize)
-
create_artists(legend, orig_handle, xdescent, ydescent, width, height, fontsize, trans)
-
legend_artist(legend, orig_handle, fontsize, handlebox) -
Возвращает объект, созданный этим HandlerBase для данного исходного объекта/указателя.
Параметры: legend :
matplotlib.legend.LegendэкземплярЛегенда, для которой создаются эти объекты легенды.
orig_handle :
matplotlib.artist.Artistили аналогичныйОбъект, для которого создаются эти объекты легенды.
fontsize : float или int
Размер шрифта в пикселях. Создаваемые объекты должны быть масштабированы в соответствии с заданным размером шрифта.
handlebox :
matplotlib.offsetbox.OffsetBoxэкземплярЯщик, созданный для хранения объектов этой записи легенды. Объекты, созданные в методе
legend_artist, должны быть добавлены в этот handlebox внутри этого метода.
-
update_prop(legend_handle, orig_handle, legend)
-
-
class matplotlib.legend_handler.HandlerCircleCollection(yoffsets=None, sizes=None, **kw) -
Обработчик для CircleCollections
-
create_collection(orig_handle, sizes, offsets, transOffset)
-
-
class matplotlib.legend_handler.HandlerErrorbar(xerr_size=0.5, yerr_size=None, marker_pad=0.3, numpoints=None, **kw) -
Обработчик для Errorbars
-
create_artists(legend, orig_handle, xdescent, ydescent, width, height, fontsize, trans)
-
get_err_size(legend, xdescent, ydescent, width, height, fontsize)
-
-
class matplotlib.legend_handler.HandlerLine2D(marker_pad=0.3, numpoints=None, **kw) -
Обработчик для экземпляров Line2D.
-
create_artists(legend, orig_handle, xdescent, ydescent, width, height, fontsize, trans)
-
-
class matplotlib.legend_handler.HandlerLineCollection(marker_pad=0.3, numpoints=None, **kw) -
Обработчик для экземпляров LineCollection.
-
create_artists(legend, orig_handle, xdescent, ydescent, width, height, fontsize, trans)
-
get_numpoints(legend)
-
-
class matplotlib.legend_handler.HandlerNpoints(marker_pad=0.3, numpoints=None, **kw) -
-
get_numpoints(legend)
-
get_xdata(legend, xdescent, ydescent, width, height, fontsize)
-
-
class matplotlib.legend_handler.HandlerNpointsYoffsets(numpoints=None, yoffsets=None, **kw) -
-
get_ydata(legend, xdescent, ydescent, width, height, fontsize)
-
-
class matplotlib.legend_handler.HandlerPatch(patch_func=None, **kw) -
Обработчик для экземпляров Patch.
Класс HandlerPatch необязательно принимает функцию
patch_func, которая отвечает за создание объекта ключа легенды. Функцияpatch_funcдолжна иметь следующий вид:def patch_func(legend=legend, orig_handle=orig_handle, xdescent=xdescent, ydescent=ydescent, width=width, height=height, fontsize=fontsize)После этого созданный объект будет иметь вызываемый метод
update_prop, и будет применено соответствующее преобразование.-
create_artists(legend, orig_handle, xdescent, ydescent, width, height, fontsize, trans)
-
-
class matplotlib.legend_handler.HandlerPathCollection(yoffsets=None, sizes=None, **kw) -
Обработчик для PathCollections, используемых в scatter
-
create_collection(orig_handle, sizes, offsets, transOffset)
-
-
class matplotlib.legend_handler.HandlerPolyCollection(xpad=0.0, ypad=0.0, update_func=None) -
Обработчик для PolyCollection, используемых в fill_between и stackplot.
-
create_artists(legend, orig_handle, xdescent, ydescent, width, height, fontsize, trans)
-
-
class matplotlib.legend_handler.HandlerRegularPolyCollection(yoffsets=None, sizes=None, **kw) -
Обработчик для RegularPolyCollections.
-
create_artists(legend, orig_handle, xdescent, ydescent, width, height, fontsize, trans)
-
create_collection(orig_handle, sizes, offsets, transOffset)
-
get_numpoints(legend)
-
get_sizes(legend, orig_handle, xdescent, ydescent, width, height, fontsize)
-
update_prop(legend_handle, orig_handle, legend)
-
-
class matplotlib.legend_handler.HandlerStem(marker_pad=0.3, numpoints=None, bottom=None, yoffsets=None, **kw) -
Обработчик для Errorbars
-
create_artists(legend, orig_handle, xdescent, ydescent, width, height, fontsize, trans)
-
get_ydata(legend, xdescent, ydescent, width, height, fontsize)
-
-
class matplotlib.legend_handler.HandlerTuple(ndivide=1, pad=None, **kwargs) -
Обработчик для Tuple.
Дополнительные параметры передаются в
HandlerBase.Параметры: ndivide : int, необязательно
Количество секций для разделения области легенды. Если None, используется длина входной кортежи. По умолчанию 1.
pad : float, необязательно
Если None, используется значение по умолчанию
legend.borderpad. В единицах доли размера шрифта. По умолчанию None.-
create_artists(legend, orig_handle, xdescent, ydescent, width, height, fontsize, trans)
-
-
matplotlib.legend_handler.update_from_first_child(tgt, src)
© 2012–2017 Matplotlib Development Team. All rights reserved.
Licensed under the Matplotlib License Agreement.
http://matplotlib.org/2.1.0/api/legend_api.html