matplotlib.pyplot.legend
-
matplotlib.pyplot.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, = 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, с преобразованием по умолчанию в координатах осей или рисунка, в зависимости от того, какой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 включен и framealphaNone, значение по умолчанию игнорируется. -
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.pyplot.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.pyplot.legend.html