matplotlib.axes.Axes.legend
-
Axes.legend(self, *args, **kwargs)[source] -
Разместить легенду на осях.
Вызовы:
legend() legend(labels) legend(handles, labels)
Вызовы соответствуют трём различным способам использования этого метода.
1. Автоматическое определение элементов для отображения в легенде
Элементы, которые будут добавлены в легенду, автоматически определяются, если не передаются дополнительные аргументы.
В этом случае метки берутся из объекта-графического элемента. Вы можете указать их либо при создании объекта, либо вызвав метод
set_label()для объекта:line, = 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. Явное определение элементов в легенде
Для полного управления тем, какие графические элементы отображаются в легенде, можно передать итерируемый список графических элементов легенды, а затем итерируемый список меток легенды соответственно:
legend((line1, line2, line3), ('label1', 'label2', 'label3'))
Параметры: -
handlessequence of Artist, optional -
Список объектов художников (линий, областей) для добавления в легенду. Используйте это вместе с метками, если вам нужен полный контроль над тем, что отображается в легенде, и описанный выше автоматический механизм недостаточен.
В этом случае длина маркеров и меток должна быть одинаковой. Если они не совпадают, они усекаются до меньшей длины.
-
labelslist of str, optional -
Список меток, которые будут отображаться рядом с объектами художников. Используйте это вместе с маркерами, если вам нужен полный контроль над тем, что отображается в легенде, и описанный выше автоматический механизм недостаточен.
Возвращаемое значение: -
legendLegend
Другие параметры: -
locstr or pair of floats, default: rcParams["legend.loc"] (default: 'best') ('best' for axes, 'upper right' for figures) -
Расположение легенды.
Строки
'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', а каждое расположение "строки" также может быть задано как числовое значение:Строка расположения Код расположения 'лучшее' 0 'верхний правый' 1 'верхний левый' 2 'нижний левый' 3 'нижний правый' 4 'правый' 5 'центр слева' 6 'центр справа' 7 'нижний центр' 8 'верхний центр' 9 'центр' 10 -
bbox_to_anchorBboxBase, 2-tuple, or 4-tuple of floats -
Прямоугольник, используемый для позиционирования легенды совместно с loc. По умолчанию
axes.bbox(если вызывается как метод дляAxes.legend) илиfigure.bbox(еслиFigure.legend).Это аргумент позволяет произвольное расположение легенды.
Координаты Bbox интерпретируются в системе координат, заданной
bbox_transform, с преобразованием по умолчанию Axes или Figure, в зависимости от того, какой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)
-
ncolinteger -
Количество столбцов в легенде. По умолчанию 1.
-
propNone or matplotlib.font_manager.FontProperties or dict -
Свойства шрифта легенды. Если None (по умолчанию), будут использоваться текущие настройки
matplotlib.rcParams. -
fontsizeint or float or {'xx-small', 'x-small', 'small', 'medium', 'large', 'x-large', 'xx-large'} -
Размер шрифта легенды. Если значение является числом, размер будет абсолютным размером шрифта в пунктах. Строковые значения относительны к текущему размеру шрифта по умолчанию. Этот аргумент используется только если prop не указан.
-
numpointsNone or int -
Количество маркеров на точке в легенде при создании записи для
Line2D(линия). По умолчаниюNone, что означает использованиеrcParams["legend.numpoints"](по умолчанию: 1). -
scatterpointsNone or int -
Количество маркеров на точке в легенде при создании записи для
PathCollection(диаграмма рассеяния). По умолчаниюNone, что означает использованиеrcParams["legend.scatterpoints"](по умолчанию: 1). -
scatteryoffsetsiterable of floats -
Вертикальное смещение (относительно размера шрифта) для маркеров, созданных для записи легенды диаграммы рассеяния. 0.0 — внизу текста легенды, 1.0 — вверху. Чтобы отобразить все маркеры на одной высоте, установите значение в
[0.5]. По умолчанию[0.375, 0.5, 0.3125]. -
markerscaleNone or int or float -
Относительный размер маркеров легенды по сравнению с исходно нарисованными. По умолчанию
None, что означает использованиеrcParams["legend.markerscale"](по умолчанию: 1.0). -
markerfirstbool -
Если True, маркер легенды размещается слева от метки легенды. Если False, маркер легенды размещается справа от метки легенды. По умолчанию True.
-
frameonNone or bool -
Нужно ли рисовать легенду на области (рамке). По умолчанию
None, что означает использованиеrcParams["legend.frameon"](по умолчанию: True). -
fancyboxNone or bool -
Нужно ли включить закругленные углы вокруг
FancyBboxPatch, которая образует фон легенды. По умолчаниюNone, что означает использованиеrcParams["legend.fancybox"](по умолчанию: True). -
shadowNone or bool -
Нужно ли рисовать тень за легендой. По умолчанию
None, что означает использованиеrcParams["legend.shadow"](по умолчанию: False). -
framealphaNone or float -
Альфа-прозрачность фона легенды. По умолчанию
None, что означает использованиеrcParams["legend.framealpha"](по умолчанию: 0.8). Если shadow активирован, и framealpha равноNone, значение по умолчанию игнорируется. -
facecolorNone or "inherit" or color -
Цвет фона легенды. По умолчанию
None, что означает использованиеrcParams["legend.facecolor"](по умолчанию: 'inherit'). Если"inherit", используйтеrcParams["axes.facecolor"](по умолчанию: 'white'). -
edgecolorNone or "inherit" or color -
Цвет границы фона легенды. По умолчанию
None, что означает использованиеrcParams["legend.edgecolor"](по умолчанию: '0.8'). Если"inherit", используйтеrcParams["axes.edgecolor"](по умолчанию: 'черный'). -
mode{"expand", None} -
Если mode установлен в
"expand", легенда будет горизонтально расширена, чтобы заполнить область осей (илиbbox_to_anchorопределяет размер легенды). -
bbox_transformNone or matplotlib.transforms.Transform -
Преобразование для ограничивающей рамки (
bbox_to_anchor). Для значенияNone(по умолчанию) будет использоваться преобразованиеtransAxesосей. -
titlestr or None -
Заголовок легенды. По умолчанию без заголовка (
None). - title_fontsize: str или None
-
Размер шрифта заголовка легенды. По умолчанию — размер шрифта по умолчанию.
-
borderpadfloat or None -
Пробел внутри границы легенды, в единицах размера шрифта. По умолчанию
None, что означает использованиеrcParams["legend.borderpad"](по умолчанию: 0.4). -
labelspacingfloat or None -
Вертикальное расстояние между записями легенды, в единицах размера шрифта. По умолчанию
None, что означает использованиеrcParams["legend.labelspacing"](по умолчанию: 0.5). -
handlelengthfloat or None -
Длина маркеров легенды, в единицах размера шрифта. По умолчанию
None, что означает использованиеrcParams["legend.handlelength"](по умолчанию: 2.0). -
handletextpadfloat or None -
Отступ между маркером и текстом легенды, в единицах размера шрифта. По умолчанию
None, что означает использованиеrcParams["legend.handletextpad"](по умолчанию: 0.8). -
borderaxespadfloat or None -
Отступ между осями и границей легенды, в единицах размера шрифта. По умолчанию
None, что означает использованиеrcParams["legend.borderaxespad"](по умолчанию: 0.5). -
columnspacingfloat or None -
Интервал между столбцами, в единицах размера шрифта. По умолчанию
None, что означает использованиеrcParams["legend.columnspacing"](по умолчанию: 2.0). -
handler_mapdict 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/3.2.2/api/_as_gen/matplotlib.axes.Axes.legend.html