matplotlib.axes.Axes.legend
- Axes.legend(*args, **kwargs)[source]
-
Размещение легенды на оси.
Варианты вызова:
legend() legend(handles, labels) legend(handles=handles) legend(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. Явное указание графических элементов и меток в легенде
Для полного управления тем, какие графические элементы будут отображаться в легенде, можно передать итерируемый объект графических элементов, за которым следует итерируемый объект меток соответственно:
ax.legend([line1, line2, line3], ['label1', 'label2', 'label3'])
3. Явное указание графических элементов в легенде
Это аналогично пункту 2, но метки берутся из свойств меток графических элементов. Пример:
line1, = ax.plot([1, 2, 3], label='label1') line2, = ax.plot([1, 2, 3], label='label2') ax.legend(handles=[line1, line2])
4. Разметка существующих элементов графика
Не рекомендуется
Этот вариант вызова не рекомендуется, так как связь между элементами графика и метками задается только неявно по их порядку и легко может быть нарушена.
Чтобы создать легенду для всех графических элементов на оси, вызовите эту функцию с итерируемым объектом строк, по одной для каждого элемента легенды. Например:
ax.plot([1, 2, 3]) ax.plot([5, 6, 7]) ax.legend(['First line', 'Second line'])
- Параметры:
-
-
handlesпоследовательность
Artist, необязательно -
Список графических элементов (линий, областей), которые должны быть добавлены в легенду. Используйте вместе с labels, если вам нужен полный контроль над тем, что отображается в легенде, и автоматический механизм, описанный выше, недостаточен.
Длина handles и labels должна быть одинаковой в этом случае. Если они разные, они обрезаются до меньшей длины.
- labelsсписок строк, необязательно
-
Список меток, которые должны отображаться рядом с графическими элементами. Используйте вместе с handles, если вам нужен полный контроль над тем, что отображается в легенде, и автоматический механизм, описанный выше, недостаточен.
-
handlesпоследовательность
- Возвращает:
-
Legend
- Другие параметры:
-
-
locstr или пара чисел с плавающей точкой, по умолчанию:
rcParams["legend.loc"](по умолчанию:'best') ('best' для осей, 'верхний правый' для фигур) -
Расположение легенды.
Строки
'upper left', 'upper right', 'lower left', 'lower right'размещают легенду в соответствующем углу осей/рисунка.Строки
'upper center', 'lower center', 'center left', 'center right'размещают легенду в центре соответствующего края осей/рисунка.Строка
'center'размещает легенду в центре осей/рисунка.Строка
'best'размещает легенду в таком местоположении из девяти определённых ранее, которое имеет минимальное перекрытие с другими отображаемыми объектами. Этот вариант может быть достаточно медленным для графиков с большим объёмом данных; скорость построения графиков может улучшиться, если указать конкретное местоположение.Местоположение также может быть 2-кортежем, содержащим координаты левого нижнего угла легенды в координатах осей (в этом случае 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)
- ncolsint, по умолчанию: 1
-
Количество столбцов в легенде.
Для обратной совместимости также поддерживается написание ncol, но это не рекомендуется. Если оба указаны, используется ncols.
-
propNone или
matplotlib.font_manager.FontPropertiesили dict -
Свойства шрифта легенды. Если None (по умолчанию), будут использоваться текущие
matplotlib.rcParams. - fontsizeint или {'xx-small', 'x-small', 'small', 'medium', 'large', 'x-large', 'xx-large'}
-
Размер шрифта легенды. Если значение числовое, размер будет абсолютным размером шрифта в пунктах. Строковые значения относятся к текущему размеру шрифта по умолчанию. Этот аргумент используется только если prop не указан.
-
labelcolorstr или список, по умолчанию:
rcParams["legend.labelcolor"](по умолчанию:'None') -
Цвет текста в легенде. Допустимая строка цвета (например, 'red') или список строк цвета. Цвет метки также можно настроить, чтобы он соответствовал цвету линии или маркера, используя 'linecolor', 'markerfacecolor' (или 'mfc'), или 'markeredgecolor' (или 'mec').
Цвет метки можно установить глобально, используя
rcParams["legend.labelcolor"](по умолчанию:'None'). Если None, используетсяrcParams["text.color"](по умолчанию:'black'). -
numpointsint, по умолчанию:
rcParams["legend.numpoints"](по умолчанию:1) -
Количество точек маркера в легенде при создании записи легенды для
Line2D(линия). -
scatterpointsint, по умолчанию:
rcParams["legend.scatterpoints"](по умолчанию:1) -
Количество точек маркера в легенде при создании записи легенды для
PathCollection(разброс точек). -
scatteryoffsetsитерируемый набор чисел с плавающей точкой, по умолчанию:
[0.375, 0.5, 0.3125] -
Вертикальное смещение (относительно размера шрифта) для маркеров, созданных для записи легенды разброса точек. 0.0 находится в основании текста легенды, а 1.0 — вверху. Чтобы отобразить все маркеры на одной высоте, установите в
[0.5]. -
markerscalefloat, по умолчанию:
rcParams["legend.markerscale"](по умолчанию:1.0) -
Относительный размер маркеров легенды по сравнению с первоначально нарисованными.
- markerfirstbool, по умолчанию: True
-
Если True, маркер легенды размещается слева от метки легенды. Если False, маркер легенды размещается справа от метки легенды.
-
frameonbool, по умолчанию:
rcParams["legend.frameon"](по умолчанию:True) -
Выводить ли легенду на области (рамке).
-
fancyboxbool, по умолчанию:
rcParams["legend.fancybox"](по умолчанию:True) -
Включить ли закругленные углы вокруг
FancyBboxPatch, который образует фон легенды. -
shadowbool, по умолчанию:
rcParams["legend.shadow"](по умолчанию:False) -
Рисовать ли тень за легендой.
-
framealphafloat, по умолчанию:
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. - titlestr или None
-
Заголовок легенды. По умолчанию заголовок отсутствует (
None). -
title_fontpropertiesNone или
matplotlib.font_manager.FontPropertiesили dict -
Свойства шрифта заголовка легенды. Если None (по умолчанию), будет использован аргумент title_fontsize, если он присутствует; если title_fontsize также None, будут использоваться текущие
rcParams["legend.title_fontsize"](по умолчанию:None). -
title_fontsizeint или {'xx-small', 'x-small', 'small', 'medium', 'large', 'x-large', 'xx-large'}, по умолчанию:
rcParams["legend.title_fontsize"](по умолчанию:None) -
Размер шрифта заголовка легенды. Примечание: Нельзя использовать совместно с title_fontproperties. Если вы хотите установить размер шрифта вместе с другими свойствами шрифта, используйте параметр size в title_fontproperties.
- alignment{'center', 'left', 'right'}, по умолчанию: 'center'
-
Выравнивание заголовка легенды и блока элементов. Элементы выравниваются как единый блок, так что маркеры всегда выстраиваются в ряд.
-
borderpadfloat, по умолчанию:
rcParams["legend.borderpad"](по умолчанию:0.4) -
Отступы внутри рамки легенды, в единицах размера шрифта.
-
labelspacingfloat, по умолчанию:
rcParams["legend.labelspacing"](по умолчанию:0.5) -
Вертикальное расстояние между элементами легенды, в единицах размера шрифта.
-
handlelengthfloat, по умолчанию:
rcParams["legend.handlelength"](по умолчанию:2.0)
-
locstr или пара чисел с плавающей точкой, по умолчанию:
-
-
Длина элементов легенды, в единицах размера шрифта.
-
handleheightfloat, значение по умолчанию:
rcParams["legend.handleheight"](значение по умолчанию:0.7) -
Высота элементов легенды, в единицах размера шрифта.
-
handletextpadfloat, значение по умолчанию:
rcParams["legend.handletextpad"](значение по умолчанию:0.8) -
Отступ между элементом легенды и текстом, в единицах размера шрифта.
-
borderaxespadfloat, значение по умолчанию:
rcParams["legend.borderaxespad"](значение по умолчанию:0.5) -
Отступ между осью и границей легенды, в единицах размера шрифта.
-
columnspacingfloat, значение по умолчанию:
rcParams["legend.columnspacing"](значение по умолчанию:2.0) -
Интервал между колонками, в единицах размера шрифта.
- handler_mapdict или None
-
Пользовательский словарь, сопоставляющий экземпляры или типы с обработчиком легенды. Этот handler_map обновляет словарь обработчика по умолчанию, найденный по адресу
matplotlib.legend.Legend.get_legend_handler_map.
-
См. также
Примечания
Некоторые элементы не поддерживаются этой функцией. Подробности см. в Руководстве по легендам.
Примеры
(Исходный код, png)
Примеры использования matplotlib.axes.Axes.legend
Построение эллипса доверия двумерного набора данных
Использование гистограмм для построения кумулятивного распределения
Функция гистограммы (hist) с несколькими наборами данных
© 2012–2023 Matplotlib Development Team. All rights reserved.
Licensed under the Matplotlib License Agreement.
https://matplotlib.org/3.6.0/api/_as_gen/matplotlib.axes.Axes.legend.html