Spec-Zone.ru › Matplotlib 1.5

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

Spec-Zone.ru

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