matplotlib.pyplot.figlegend
- matplotlib.pyplot.figlegend(*args, **kwargs)[source]
-
Размещение легенды на рисунке.
Подписи к вызовам:
figlegend() figlegend(handles, labels) figlegend(handles=handles) figlegend(labels)
Подписи вызовов соответствуют различным способам использования этого метода:
1. Автоматическое определение элементов для отображения в легенде
Элементы, которые нужно добавить в легенду, определяются автоматически, если вы не передаёте дополнительных аргументов.
В этом случае метки берутся из графического объекта. Вы можете указать их либо при создании графического объекта, либо вызвав метод
set_label()для графического объекта:plt.plot([1, 2, 3], label='Inline label') plt.figlegend()
или:
line, = plt.plot([1, 2, 3]) line.set_label('Label via method') plt.figlegend()Конкретные линии можно исключить из автоматического выбора элементов легенды, задав метку, начинающуюся с подчёркивания. Это значение по умолчанию для всех графических объектов, поэтому вызов
Figure.legendбез каких-либо аргументов и без ручного задания меток не приведет к построению легенды.2. Явное указание графических объектов и меток в легенде
Для полного управления тем, какие графические объекты имеют запись в легенде, можно передать итерируемый список графических объектов, за которым следует итерируемый список меток соответственно:
plt.figlegend([line1, line2, line3], ['label1', 'label2', 'label3'])
3. Явное указание графических объектов в легенде
Это аналогично пункту 2, но метки берутся из свойств меток графических объектов. Пример:
line1, = ax1.plot([1, 2, 3], label='label1') line2, = ax2.plot([1, 2, 3], label='label2') plt.figlegend(handles=[line1, line2])
4. Подпись существующих элементов графика
Отговаривается от использования
Этот вызов не рекомендуется, так как связь между элементами графика и метками неявно задаётся их порядком и легко может быть нарушена.
Чтобы создать легенду для всех графических объектов на всех осях, вызовите эту функцию с итерируемым списком строк, по одной для каждого элемента легенды. Например:
fig, (ax1, ax2) = plt.subplots(1, 2) ax1.plot([1, 3, 5], color='blue') ax2.plot([2, 4, 6], color='red') plt.figlegend(['the blues', 'the reds'])
- Параметры:
-
-
handlesсписок
Artist, необязательно -
Список графических объектов (линии, области) для добавления в легенду. Используйте его вместе с labels, если вам нужен полный контроль над отображаемыми элементами легенды, и автоматический механизм, описанный выше, недостаточен.
Длина списков handles и labels должна быть одинаковой в этом случае. Если они различаются, они усекаются до меньшей длины.
- labelsсписок строк, необязательно
-
Список меток для отображения рядом с графическими объектами. Используйте его вместе с handles, если вам нужен полный контроль над отображаемыми элементами легенды, и автоматический механизм, описанный выше, недостаточен.
-
handlesсписок
- Возвращаемое значение:
-
Legend
- Другие параметры:
-
- locstr или пара чисел с плавающей точкой, по умолчанию: 'верхний правый'
-
Расположение легенды.
Строки
'upper left','upper right','lower left','lower right'размещают легенду в соответствующем углу рисунка.Строки
'upper center','lower center','center left','center right'размещают легенду в центре соответствующей стороны рисунка.Строка
'center'размещает легенду в центре рисунка.Расположение также может быть 2-кортежем, содержащим координаты левого нижнего угла легенды в координатах рисунка (в этом случае bbox_to_anchor будет проигнорирован).
Для обратной совместимости,
'center right'(но не другие расположения) также может быть написано как'right', и каждое расположение "строкой" также может быть задано числовым значением:Строковое расположение
Код расположения
'лучшее' (только для осей)
0
'верхний правый'
1
'верхний левый'
2
'нижний левый'
3
'нижний правый'
4
'правый'
5
'центр слева'
6
'центр справа'
7
'нижний центр'
8
'верхний центр'
9
'центр'
10
Если рисунок использует менеджер условной компоновки, строковые коды аргумента loc могут обеспечить лучшую компоновку с использованием префикса 'вне'. Возникает неоднозначность в углах, поэтому 'вне верхний правый' создаст место для легенды над остальными осями в макете, а 'вне правый верхний' - место справа от макета. Кроме значений loc, перечисленных выше, у нас есть 'вне правый верхний', 'вне правый нижний', 'вне левый верхний' и 'вне левый нижний'. Смотрите Руководство по легендам для получения более подробной информации.
-
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 или
FontPropertiesили словарь -
Свойства шрифта легенды. Если 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]. -
markerscaleчисло с плавающей точкой, по умолчанию:
rcParams["legend.markerscale"](по умолчанию:1.0) -
Относительный размер маркеров легенды по сравнению с первоначально нарисованными.
- markerfirstbool, по умолчанию: True
-
Если True, маркер легенды размещается слева от подписи легенды. Если False, маркер легенды размещается справа от подписи легенды.
- reversebool, по умолчанию: False
-
Если True, метки легенды отображаются в обратном порядке входных данных. Если False, метки легенды отображаются в том же порядке, что и входные данные.
Новое в версии 3.7.
-
frameonbool, по умолчанию:
rcParams["legend.frameon"](по умолчанию:True) -
Определяет, должна ли легенда быть нарисована на области (рамке).
-
fancyboxbool, по умолчанию:
rcParams["legend.fancybox"](по умолчанию:True) -
Определяет, должны ли быть включены закругленные углы вокруг
FancyBboxPatch, что формирует фон легенды. -
shadowNone, bool или словарь, по умолчанию:
rcParams["legend.shadow"](по умолчанию:False) -
Определяет, должна ли легенда иметь тень за ней. Тень может быть настроена с помощью ключевых слов
Patch. Настройка через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 или
Transform -
Преобразование для ограничивающего прямоугольника (bbox_to_anchor). Для значения
None(по умолчанию) будет использоваться преобразование осейtransAxes. - titlestr или None
-
Заголовок легенды. По умолчанию заголовок отсутствует (
None). -
title_fontpropertiesNone или
FontPropertiesили словарь -
Свойства шрифта заголовка легенды. Если None (по умолчанию), будет использован аргумент title_fontsize, если он присутствует; если title_fontsize также None, будет использован текущий
rcParams["legend.title_fontsize"](по умолчанию:None).
-
-
размер_шрифта_заголовкаint или {'xx-small', 'x-small', 'small', 'medium', 'large', 'x-large', 'xx-large'}, по умолчанию:
rcParams["legend.title_fontsize"](по умолчанию:None) -
Размер шрифта заголовка легенды. Примечание: это нельзя комбинировать с title_fontproperties. Если вы хотите установить размер шрифта вместе с другими свойствами шрифта, используйте параметр size в title_fontproperties.
- выравнивание{'center', 'left', 'right'}, по умолчанию: 'center'
-
Выравнивание заголовка легенды и области записей. Записи выравниваются как единый блок, так что маркеры всегда выстраиваются в одну линию.
-
отступ_от_рамкиfloat, по умолчанию:
rcParams["legend.borderpad"](по умолчанию:0.4) -
Отступ внутри рамки легенды, в единицах размера шрифта.
-
межстрочный_интервалfloat, по умолчанию:
rcParams["legend.labelspacing"](по умолчанию:0.5) -
Вертикальное расстояние между записями легенды, в единицах размера шрифта.
-
длина_ручекfloat, по умолчанию:
rcParams["legend.handlelength"](по умолчанию:2.0) -
Длина ручек легенды, в единицах размера шрифта.
-
высота_ручекfloat, по умолчанию:
rcParams["legend.handleheight"](по умолчанию:0.7) -
Высота ручек легенды, в единицах размера шрифта.
-
отступ_между_ручкой_и_текстомfloat, по умолчанию:
rcParams["legend.handletextpad"](по умолчанию:0.8) -
Отступ между ручкой легенды и текстом, в единицах размера шрифта.
-
отступ_между_осями_и_рамкойfloat, по умолчанию:
rcParams["legend.borderaxespad"](по умолчанию:0.5) -
Отступ между осями и рамкой легенды, в единицах размера шрифта.
-
межколоночный_пробелfloat, по умолчанию:
rcParams["legend.columnspacing"](по умолчанию:2.0) -
Пробел между колонками, в единицах размера шрифта.
- отображение_обработчикаdict или None
-
Пользовательский словарь, сопоставляющий экземпляры или типы с обработчиком легенды. Этот handler_map обновляет стандартный словарь обработчика, который находится по адресу
matplotlib.legend.Legend.get_legend_handler_map. - перетаскиваемаяbool, по умолчанию: False
-
Можно ли перетаскивать легенду мышкой.
-
размер_шрифта_заголовкаint или {'xx-small', 'x-small', 'small', 'medium', 'large', 'x-large', 'xx-large'}, по умолчанию:
См. также
Примечания
Некоторые элементы графики не поддерживаются этой функцией. Подробности см. в Руководстве по легендам.
© 2012–2023 Matplotlib Development Team. All rights reserved.
Licensed under the Matplotlib License Agreement.
https://matplotlib.org/3.8.4/api/_as_gen/matplotlib.pyplot.figlegend.html