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 : Если “loc”, обновить параметр loc
- легенды при окончании. Если “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, 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, 'center left' : 6, 'center right' : 7, 'lower center' : 8, 'upper center' : 9, 'center' : 10,
loc может быть кортежем значений нормализованных координат по отношению к его родительскому элементу.
- родитель: элемент, содержащий легенду
-
- handles: список элементов графики (линий, областей) для добавления в
-
легенду
- labels: список строк для подписей легенды
Необязательные ключевые параметры:
Ключевое слово Описание loc код расположения prop свойства шрифта fontsize размер шрифта (используется только если prop не указан) markerscale относительный размер маркеров легенды по сравнению с исходным markerfirst Если True, поместить маркер легенды слева от метки. Если False, поместить маркер легенды справа от метки. numpoints количество точек в легенде для линии scatterpoints количество точек в легенде для диаграммы рассеяния scatteryoffsets список смещений y для символов диаграммы рассеяния в легенде frameon если True, нарисовать рамку вокруг легенды. Если None, использовать rc fancybox если True, нарисовать рамку с закругленными углами. Если None, использовать rc shadow если True, нарисовать тень за легендой framealpha Если не None, альфа-канал для рамки. 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 в кортеж из двух чисел с плавающей точкой, которое интерпретируется как нижний левый угол легенды в нормализованных координатах осей.
-
codes = {'lower center': 8, 'upper center': 9, 'lower right': 4, 'center right': 7, 'center left': 6, 'upper left': 2, 'center': 10, 'lower left': 3, 'right': 5, 'best': 0, 'upper right': 1}
-
contains(event)
-
draggable(state=None, use_blit=False, update='loc') -
Установить состояние перетаскивания — если состояние
- None : переключить текущее состояние
- True : включить перетаскивание
- False : отключить перетаскивание
Если перетаскивание включено, вы можете перетаскивать легенду по холсту мышью. Экземпляр DraggableLegend возвращается, если перетаскивание включено.
Параметр update управляет тем, какой параметр легенды изменяется при перетаскивании. Если update — “loc”, изменяется параметр loc легенды. Если “bbox”, изменяется параметр bbox_to_anchor.
-
draw(artist, renderer, *args, **kwargs) -
Отобразить все, что принадлежит легенде
-
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
Этот модуль определяет стандартные обработчики легенды.
Сильно рекомендуется прочитать руководство по легендам перед этим документом.
END_OF_DOCUMENT_MARKERОбработчики легенды должны быть вызываемым объектом со следующим сигнатурой.
legend_handler(legend, orig_handle, fontsize, handlebox)
Где легенда — сама легенда, orig_handle — исходный график, fontsize — размер шрифта в пикселях, а handlebox — экземпляр OffsetBox. Внутри вызова вы должны создать соответствующие художники (используя соответствующие свойства из легенды и/или 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), которые масштабируются в зависимости от размера шрифта, если необходимо.
-
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(**kwargs) -
Обработчик для Tuple
-
create_artists(legend, orig_handle, xdescent, ydescent, width, height, fontsize, trans)
-
-
matplotlib.legend_handler.update_from_first_child(tgt, src)
© 2012–2016 Matplotlib Development Team. All rights reserved.
Licensed under the Matplotlib License Agreement.
http://matplotlib.org/1.5.3/api/legend_api.html