matplotlib.axes.Axes.legend
-
Axes.legend(*args, **kwargs)[source] -
Размещение легенды на оси.
Варианты вызова:
legend() legend(labels) legend(handles, labels)
Варианты вызова соответствуют трём способам использования данного метода:
1. Автоматическое определение элементов для отображения в легенде
Элементы, которые будут добавлены в легенду, определяются автоматически, если не переданы дополнительные аргументы.
В этом случае метки берутся из объекта-графического элемента. Вы можете указать их либо при создании объекта, либо вызвав метод
set_label()для объекта-графического элемента:ax.plot([1, 2, 3], label='Inline label') ax.legend()
или:
line, = ax.plot([1, 2, 3]) line.set_label('Label via method') ax.legend()Конкретные линии можно исключить из автоматического выбора элементов для легенды, задав метку, начинающуюся с нижнего подчёркивания. Это значение по умолчанию для всех объектов-графических элементов, поэтому вызов
Axes.legendбез аргументов и без ручного задания меток не приведет к отображению легенды.2. Подпись существующих элементов графика
Для создания легенды для линий, которые уже существуют на оси (например, через plot), просто вызовите эту функцию со списком строк, по одной для каждого элемента легенды. Например:
ax.plot([1, 2, 3]) ax.legend(['A simple line'])
Примечание: Этот вариант вызова не рекомендуется, так как связь между элементами графика и метками определяется только порядком и может быть легко спутана.
3. Явное определение элементов в легенде
Для полного контроля над тем, какие объекты-графические элементы имеют запись в легенде, можно передать последовательность объектов-графических элементов легенды, за которой следует последовательность меток легенды соответственно:
ax.legend([line1, line2, line3], ['label1', 'label2', 'label3'])
Параметры: -
handlesпоследовательность
Artist, необязательно -
Список объектов-графических элементов (линии, области), которые необходимо добавить в легенду. Используйте это вместе с labels, если вам нужен полный контроль над отображением элементов в легенде, и автоматический механизм, описанный выше, не подходит.
Длина handles и labels должна быть одинаковой в этом случае. Если они не равны, они усекаются до меньшей длины.
- labelsсписок str, необязательно
-
Список меток, которые необходимо отобразить рядом с объектами-графическими элементами. Используйте это вместе с handles, если вам нужен полный контроль над отображением элементов в легенде, и автоматический механизм, описанный выше, не подходит.
Возвращаемое значение: -
handlesпоследовательность
Другие параметры: -
locстрока или пара чисел с плавающей точкой, по умолчанию:
rcParams["legend.loc"](по умолчанию:'best') ('best' для осей, 'верхний правый' для графиков) -
Расположение легенды.
Строки
'upper left', 'upper right', 'lower left', 'lower right'размещают легенду в соответствующем углу осей/графика.Строки
'upper center', 'lower center', 'center left', 'center right'размещают легенду в центре соответствующей стороны осей/графика.Строка
'center'размещает легенду в центре осей/графика.Строка
'best'размещает легенду в таком расположении из девяти возможных, чтобы перекрытие с другими отрисованными элементами было минимальным. Этот вариант может быть довольно медленным для графиков с большим объемом данных; ваша скорость построения графиков может улучшиться, если вы укажете конкретное расположение.Расположение также может быть кортежем из двух чисел с плавающей точкой, задающим координаты левого нижнего угла легенды в координатах осей (в этом случае bbox_to_anchor будет проигнорирован).
Для обратной совместимости,
'center right'(но не другие расположения) также может быть написано'right', и каждое расположение в виде "строки" также может быть задано числовым значением:Расположение (строка) Код расположения 'best' 0 'верхний правый' 1 'верхний левый' 2 'нижний левый' 3 'нижний правый' 4 'правый' 5 'центр слева' 6 'центр справа' 7 'нижний центр' 8 'верхний центр' 9 'центр' 10 -
bbox_to_anchor
BboxBase, кортеж из 2 или 4 чисел с плавающей точкой -
Прямоугольник, используемый для позиционирования легенды совместно с параметром loc. По умолчанию
axes.bbox(если вызывается как метод дляAxes.legend) илиfigure.bbox(еслиFigure.legend). Этот параметр позволяет произвольно размещать легенду.Координаты прямоугольника интерпретируются в системе координат, заданной параметром bbox_transform, по умолчанию в координатах осей или графика, в зависимости от того, какой метод
legendвызывается.Если задается кортеж из 4 чисел или
BboxBase, то он задает прямоугольник(x, y, width, height)в котором размещается легенда. Чтобы разместить легенду в лучшем расположении в правом нижнем квадранте осей (или графика):loc='best', bbox_to_anchor=(0.5, 0., 0.5, 0.5)
Кортеж из 2 чисел
(x, y)размещает угол легенды, заданный параметром loc, в координатах x, y. Например, чтобы поместить верхний правый угол легенды в центр осей (или графика) можно использовать следующие параметры:loc='upper right', bbox_to_anchor=(0.5, 0.5)
- ncolцелое число, по умолчанию: 1
-
Количество столбцов в легенде.
-
propNone или
matplotlib.font_manager.FontPropertiesили словарь -
Свойства шрифта легенды. Если None (по умолчанию), будут использоваться текущие значения
matplotlib.rcParams. - fontsizeцелое число или {'xx-small', 'x-small', 'small', 'medium', 'large', 'x-large', 'xx-large'}
-
Размер шрифта легенды. Если значение является числом, размер будет абсолютным размером шрифта в пунктах. Строковые значения относительны к текущему размеру шрифта по умолчанию. Этот параметр используется только если параметр prop не задан.
- labelcolorстрока или список
-
Цвет текста в легенде. Допустимая строка цвета (например, 'red'), или список строковых представлений цветов. Цвет подписи также можно сделать соответствующим цвету линии или маркера, используя 'linecolor', 'markerfacecolor' (или 'mfc'), или 'markeredgecolor' (или 'mec').
-
numpointsцелое число, по умолчанию:
rcParams["legend.numpoints"](по умолчанию:1) -
Количество маркеров в легенде при создании записи легенды для
Line2D(линии). -
scatterpointsцелое число, по умолчанию:
rcParams["legend.scatterpoints"](по умолчанию:1) -
Количество маркеров в легенде при создании записи легенды для
PathCollection(графика точек). -
scatteryoffsetsитерируемый объект чисел с плавающей точкой, по умолчанию:
[0.375, 0.5, 0.3125] -
Вертикальное смещение (относительно размера шрифта) для маркеров, созданных для записи легенды графика точек. 0.0 — внизу текста легенды, 1.0 — вверху. Чтобы все маркеры были на одной высоте, установите значение
[0.5]. -
markerscaleчисло с плавающей точкой, по умолчанию:
rcParams["legend.markerscale"](по умолчанию:1.0) -
Относительный размер маркеров легенды по сравнению с первоначально отрисованными.
- markerfirstбулево значение, по умолчанию: True
-
Если True, маркер легенды размещается слева от подписи легенды. Если False, маркер легенды размещается справа от подписи легенды.
-
frameonбулево значение, по умолчанию:
rcParams["legend.frameon"](по умолчанию:True) -
Определяет, должна ли легенда быть нарисована на области (рамке).
-
fancyboxбулево значение, по умолчанию:
rcParams["legend.fancybox"](по умолчанию:True) -
Определяет, должны ли быть закруглены углы вокруг
FancyBboxPatch, составляющей фон легенды. -
shadowбулево значение, по умолчанию:
rcParams["legend.shadow"](по умолчанию:False) -
Определяет, должна ли быть отрисована тень за легендой.
-
framealphaчисло с плавающей точкой, по умолчанию:
rcParams["legend.framealpha"](по умолчанию:0.8) -
Альфа-прозрачность фона легенды. Если shadow включен и framealpha равен
None, значение по умолчанию игнорируется. -
facecolor"inherit" или цвет, по умолчанию:
rcParams["legend.facecolor"](по умолчанию:'inherit') -
Цвет фона легенды. Если
"inherit", использоватьrcParams["axes.facecolor"](по умолчанию:'white'). -
edgecolor"inherit" или цвет, по умолчанию:
rcParams["legend.edgecolor"](по умолчанию:'0.8') -
Цвет границы области фона легенды. Если
"inherit", использоватьrcParams["axes.edgecolor"](по умолчанию:'black'). - mode{"expand", None}
-
Если mode равен
"expand", легенда будет расширена по горизонтали, чтобы заполнить область осей (или bbox_to_anchor, если он определяет размер легенды). -
bbox_transformNone или
matplotlib.transforms.Transform -
Преобразование для прямоугольника (bbox_to_anchor). Для значения
None(по умолчанию) будет использоваться преобразование осейtransAxes. - titleстрока или None
-
Заголовок легенды. По умолчанию заголовок отсутствует (
None). -
title_fontsizeцелое число или {'xx-small', 'x-small', 'small', 'medium', 'large', 'x-large', 'xx-large'}, по умолчанию:
rcParams["legend.title_fontsize"](по умолчанию:None) -
Размер шрифта заголовка легенды.
-
borderpadчисло с плавающей точкой, по умолчанию:
rcParams["legend.borderpad"](по умолчанию:0.4) -
Отступы внутри границы легенды, в единицах размера шрифта.
-
labelspacingчисло с плавающей точкой, по умолчанию:
rcParams["legend.labelspacing"](по умолчанию:0.5) -
Вертикальное расстояние между записями легенды, в единицах размера шрифта.
-
handlelengthчисло с плавающей точкой, по умолчанию:
rcParams["legend.handlelength"](по умолчанию:2.0) -
Длина ручек легенды, в единицах размера шрифта.
-
handletextpadчисло с плавающей точкой, по умолчанию:
rcParams["legend.handletextpad"](по умолчанию:0.8) -
Отступ между ручкой легенды и текстом, в единицах размера шрифта.
-
borderaxespadчисло с плавающей точкой, по умолчанию:
rcParams["legend.borderaxespad"](по умолчанию:0.5) -
Отступ между осями и границей легенды, в единицах размера шрифта.
-
columnspacingчисло с плавающей точкой, по умолчанию:
rcParams["legend.columnspacing"](по умолчанию:2.0) -
Отступ между столбцами, в единицах размера шрифта.
- handler_mapсловарь или None
-
Пользовательский словарь, сопоставляющий экземпляры или типы с обработчиком легенды. Этот handler_map обновляет словарь обработчиков по умолчанию, найденный в
matplotlib.legend.Legend.get_legend_handler_map.
См. также
-
locстрока или пара чисел с плавающей точкой, по умолчанию:
Примечания
Некоторые художники не поддерживаются этой функцией. Подробнее см. Руководство по легендам.
Примеры
(Исходный код, png, pdf)
Примеры использования matplotlib.axes.Axes.legend
© 2012–2021 Matplotlib Development Team. All rights reserved.
Licensed under the Matplotlib License Agreement.
https://matplotlib.org/3.4.3/api/_as_gen/matplotlib.axes.Axes.legend.html