matplotlib.axes.Axes.legend
-
Axes.legend(*args, **kwargs)[source]
-
Размещает легенду на осях.
Подписи вызова:
legend() legend(labels) legend(handles, labels)
Подписи вызова соответствуют трём различным способам использования этого метода.
1. Автоматическое определение элементов для отображения в легенде
Элементы, которые будут добавлены в легенду, автоматически определяются, если вы не передаёте никаких дополнительных аргументов.
В этом случае метки берутся из объекта. Вы можете указать их при создании объекта или вызвав метод
set_label()для этого объекта:line, = ax.plot([1, 2, 3], label='Inline label') ax.legend()
или:
line.set_label('Label via method') line, = ax.plot([1, 2, 3]) ax.legend()Конкретные линии могут быть исключены из автоматического выбора элементов легенды, если вы зададите метку, начинающуюся с символа подчёркивания. Это по умолчанию для всех объектов, поэтому вызов
Axes.legendбез каких-либо аргументов и без ручного задания меток не приведёт к отрисовке легенды.2. Подпись существующих элементов графика
Чтобы создать легенду для линий, которые уже существуют на осях (например, с помощью plot), просто вызовите эту функцию с итерируемым списком строк, по одной строке для каждого элемента легенды. Например:
ax.plot([1, 2, 3]) ax.legend(['A simple line'])
Примечание: Этот способ использования не рекомендуется, так как связь между элементами графика и метками является только неявной, по их порядку, и может легко быть нарушена.
3. Явное определение элементов в легенде
Для полного контроля над тем, какие объекты имеют запись в легенде, можно передать итерируемый список объектов легенды, а затем итерируемый список меток легенды соответственно:
legend((line1, line2, line3), ('label1', 'label2', 'label3'))Параметры: -
handles : sequence of Artist, optional -
Список объектов (линии, области) для добавления в легенду. Используйте вместе с labels, если вам нужен полный контроль над тем, что отображается в легенде, и автоматический механизм, описанный выше, недостаточен.
Длина handles и labels должна быть одинаковой в этом случае. Если это не так, они обрезаются до меньшей длины.
-
labels : sequence of strings, optional -
Список меток для отображения рядом с объектами. Используйте вместе с handles, если вам нужен полный контроль над тем, что отображается в легенде, и автоматический механизм, описанный выше, недостаточен.
Возвращаемое значение: - Экземпляр класса :class:`matplotlib.legend.Legend`
Другие параметры: -
loc : int or string or pair of floats, default: 'upper right' -
Положение легенды. Возможные значения:
Строка положения Код положения 'best' 0 'вверху справа' 1 'вверху слева' 2 'внизу слева' 3 'внизу справа' 4 'справа' 5 'по центру слева' 6 'по центру справа' 7 'внизу по центру' 8 'вверху по центру' 9 'по центру' 10 В качестве альтернативы может быть 2-кортеж, задающий
x, yлевого нижнего угла легенды в координатах осей (в этом случае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().
Примечания
Не все типы объектов поддерживаются командой легенды. Подробнее см. Руководство по легендам.
Примеры
(Исходный код, png, pdf)
-
Примеры использования matplotlib.axes.Axes.legend
© 2012–2018 Matplotlib Development Team. All rights reserved.
Licensed under the Matplotlib License Agreement.
https://matplotlib.org/2.2.3/api/_as_gen/matplotlib.axes.Axes.legend.html