matplotlib.pyplot.legend #
- matplotlib.pyplot。图例( * args , ** kwargs ) [来源] #
在轴上放置一个图例。
来电签名:
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'])
- 参数:
- 处理序列
Artist
,可选 要添加到图例中的艺术家(线条、补丁)列表。如果您需要完全控制图例中显示的内容并且上述自动机制还不够,请将此与标签一起使用。
在这种情况下,手柄和标签的长度应该相同。如果不是,则将它们截断为较小的长度。
- str的标签列表,可选
在艺术家旁边显示的标签列表。如果您需要完全控制图例中显示的内容并且上述自动机制还不够,请将此与句柄一起使用。
- 处理序列
- 返回:
- 其他参数:
- loc str 或一对浮点数,默认值:(
rcParams["legend.loc"]
默认值:'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'
位置字符串
位置代码
'最好的'
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 坐标在bbox_transform给出的坐标系中解释, 默认的变换 Axes 或 Figure 坐标,取决于
legend
调用哪个。如果
BboxBase
给出 4 元组 or ,则它指定放置图例的 bbox 。要将图例放置在轴(或图形)右下象限的最佳位置:(x, y, width, height)
loc='best', bbox_to_anchor=(0.5, 0., 0.5, 0.5)
一个 2 元组将loc指定的图例的角放置在 x, y 处。例如,要将图例的右上角放在轴(或图形)的中心,可以使用以下关键字:
(x, y)
loc='upper right', bbox_to_anchor=(0.5, 0.5)
- ncols int,默认值:1
图例的列数。
为了向后兼容,拼写ncol也受支持,但不鼓励使用。如果两者都给出,则ncols优先。
- prop无 or
matplotlib.font_manager.FontProperties
或 dict 图例的字体属性。如果 None (默认),
matplotlib.rcParams
将使用当前。- fontsize int 或 {'xx-small', 'x-small', 'small', 'medium', 'large', 'x-large', 'xx-large'}
图例的字体大小。如果该值为数字,则大小将是绝对字体大小(以磅为单位)。字符串值是相对于当前默认字体大小的。仅当未指定prop时才使用此参数。
- labelcolor str 或列表,默认值:(
rcParams["legend.labelcolor"]
默认值'None'
:) 图例中文本的颜色。一个有效的颜色字符串(例如,'red'),或者一个颜色字符串列表。也可以使用“linecolor”、“markerfacecolor”(或“mfc”)或“markeredgecolor”(或“mec”)使标签颜色与线条或标记的颜色相匹配。
Labelcolor 可以使用
rcParams["legend.labelcolor"]
(默认值:)全局设置'None'
。如果没有,使用rcParams["text.color"]
(默认值:)'black'
。- numpoints int,默认值:(
rcParams["legend.numpoints"]
默认值1
:) Line2D
为(线)创建图例条目时图例中的标记点数。- scatterpoints int,默认值:(
rcParams["legend.scatterpoints"]
默认值1
:) PathCollection
为(散点图)创建图例条目时图例中的标记点数。- scatteryoffsets可迭代的浮点数,默认值:
[0.375, 0.5, 0.3125]
为散点图图例条目创建的标记的垂直偏移量(相对于字体大小)。0.0 位于图例文本的底部,1.0 位于顶部。要在相同高度绘制所有标记,请设置为
[0.5]
。- 标记刻度浮动,默认值:(
rcParams["legend.markerscale"]
默认值1.0
:) 图例标记与最初绘制的标记相比的相对大小。
- markerfirst bool,默认:True
如果为True,则图例标记放置在图例标签的左侧。如果为False,则图例标记放置在图例标签的右侧。
- frameon bool,默认值:(
rcParams["legend.frameon"]
默认值True
:) 图例是否应绘制在补丁(框架)上。
- fancybox布尔值,默认值:(
rcParams["legend.fancybox"]
默认值True
:) 是否应在
FancyBboxPatch
构成图例背景的周围启用圆边。- 阴影布尔值,默认值:(
rcParams["legend.shadow"]
默认值False
:) 是否在图例后面画阴影。
- framealpha浮点数,默认值:(
rcParams["legend.framealpha"]
默认值0.8
:) 图例背景的 alpha 透明度。如果shadow被激活并且framealpha为
None
,则默认值被忽略。- facecolor “继承”或颜色,默认值:(
rcParams["legend.facecolor"]
默认值'inherit'
:) 图例的背景颜色。如果
"inherit"
,请使用rcParams["axes.facecolor"]
(默认值:'white'
)。- edgecolor “继承”或颜色,默认值:(
rcParams["legend.edgecolor"]
默认值'0.8'
:) 图例的背景补丁边缘颜色。如果
"inherit"
,请使用 takercParams["axes.edgecolor"]
(默认值:'black'
)。- 模式{“扩展”,无}
如果模式设置为
"expand"
图例将水平扩展以填充轴区域(或bbox_to_anchor,如果定义了图例的大小)。- bbox_transform无或
matplotlib.transforms.Transform
边界框 ( bbox_to_anchor ) 的变换。对于(默认)值,将使用
None
轴的 变换。transAxes
- 标题str 或无
传说的标题。默认为无标题 (
None
)。- title_fontproperties无 or
matplotlib.font_manager.FontProperties
或 dict 图例标题的字体属性。如果 None (默认), 如果存在title_fontsize参数将被使用;如果title_fontsize也为 None,则将使用当前
rcParams["legend.title_fontsize"]
(默认值:)None
。- title_fontsize int 或 {'xx-small', 'x-small', 'small', 'medium', 'large', 'x-large', 'xx-large'},默认值:(
rcParams["legend.title_fontsize"]
默认值None
:) 图例标题的字体大小。注意:这不能与title_fontproperties结合使用。如果您想将字体大小与其他字体属性一起设置,请使用title_fontproperties中的size 参数。
- 对齐{'center', 'left', 'right'},默认值:'center'
图例标题和条目框的对齐方式。条目作为单个块对齐,因此标记始终对齐。
- 边框浮动,默认值:(
rcParams["legend.borderpad"]
默认值0.4
:) 图例边框内的小数空格,以字体大小为单位。
- 标签间距浮动,默认值:(
rcParams["legend.labelspacing"]
默认值0.5
:) 图例条目之间的垂直间距,以字体大小为单位。
- 处理长度浮点数,默认值:(
rcParams["legend.handlelength"]
默认值2.0
:) 图例句柄的长度,以字体大小为单位。
- handleheight浮点数,默认值:(
rcParams["legend.handleheight"]
默认值0.7
:) 图例句柄的高度,以字体大小为单位。
- handletextpad浮动,默认值:(
rcParams["legend.handletextpad"]
默认值0.8
:) 图例句柄和文本之间的填充,以字体大小为单位。
- borderaxespad浮动,默认值:(
rcParams["legend.borderaxespad"]
默认值0.5
:) 轴和图例边框之间的填充,以字体大小为单位。
- 列间距浮动,默认值:(
rcParams["legend.columnspacing"]
默认值2.0
:) 列之间的间距,以字体大小为单位。
- handler_map字典或无
自定义字典将实例或类型映射到图例处理程序。此handler_map更新在 中找到的默认处理程序映射
matplotlib.legend.Legend.get_legend_handler_map
。
- loc str 或一对浮点数,默认值:(
也可以看看
笔记
此功能不支持某些艺术家。有关详细信息,请参阅 图例指南。
例子