Matplotlib is hiring a Research Software Engineering Fellow! See discourse for details. Apply by January 3, 2020

Version 3.1.1
matplotlib
Fork me on GitHub

目录

Related Topics

图例和图例处理程序

matplotlib.legend

“图例”模块定义图例类,该类负责绘制与轴和/或图形关联的图例。

重要

您不太可能手动创建图例实例。大多数用户通常会通过 legend() 功能。更多关于传说的细节还有 legend guide .

Legend类可以视为包含Legend句柄和Legend文本的容器。从轴或图形中的绘图元素(例如线条、补丁等)创建相应的图例句柄由处理程序映射指定,该映射定义绘图元素和要使用的图例处理程序之间的映射(默认的图例处理程序在 legend_handler 模块)。注意,在默认情况下,并不是所有类型的艺术家都受图例支持,但是可以扩展图例处理程序的功能来支持任意对象。见 legend guide 更多信息。

class matplotlib.legend.DraggableLegend(legend, use_blit=False, update='loc')[源代码]

基类:matplotlib.offsetbox.DraggableOffsetBox

包装 Legend 支持鼠标拖动。

参数:
传奇Legend : 传说

这个 Legend 要包装的实例。

use_blit : 可选的布尔

使用Blitting可以更快地合成图像。详情见 FuncAnimation .

更新 : 'loc'、'bbox',可选

如果“loc”,更新 loc 完成时图例的参数。如果“bbox”,则更新 bbox_to_anchor 参数。

artist_picker(legend, evt)[源代码]
finalize_offset()[源代码]
class matplotlib.legend.Legend(parent, handles, labels, loc=None, numpoints=None, markerscale=None, markerfirst=True, scatterpoints=None, scatteryoffsets=None, prop=None, fontsize=None, borderpad=None, labelspacing=None, handlelength=None, handleheight=None, handletextpad=None, borderaxespad=None, columnspacing=None, ncol=1, mode=None, fancybox=None, shadow=None, title=None, title_fontsize=None, framealpha=None, edgecolor=None, facecolor=None, bbox_to_anchor=None, bbox_transform=None, frameon=None, handler_map=None)[源代码]

基类:matplotlib.artist.Artist

在位置loc的轴上放置图例。

参数:
起源AxesFigure : 轴或图形

包含图例的艺术家。

把手 顺序: Artist : 艺术家序列

要添加到图例中的艺术家列表(线条、面片)。

标签 : 字符串序列

要在艺术家旁边显示的标签列表。手柄和标签的长度应相同。如果不是,则将它们截断为两个长度中较小的一个。

其他参数:
loc : int or string or pair of floats, default: rcParams["legend.loc"] (轴为“最佳”,数字为“右上角”)。 : int或string或float对,默认值:rcparams ["legend.loc"] (轴为“最佳”,数字为“右上角”)。

图例的位置。可能的代码有:

位置字符串 位置代码
“最好” 0
右上角 1
“左上角” 2
“左下角” 3
右下角 4
“对” 5
“左中锋” 6
“中间偏右” 7
“下中心” 8
“上中心” 9
“中心” 10

或者可以是两元组 x, y 轴坐标中图例的左下角(在这种情况下 bbox_to_anchor 将被忽略)。

对于具有大量数据的绘图,“最佳”选项可能非常慢。您的绘图速度可能会受益于提供特定位置。

bbox_to_anchorBboxBase ,2元组,或4元组浮点数 : bboxbase、2元组或4元组浮点数

用于将图例与 loc .默认为 axes.bbox (如果作为方法调用 Axes.legendfigure.bbox (如果 Figure.legend )此参数允许任意放置图例。

bbox坐标在以下坐标系中解释: bbox_transform ,使用默认的变换轴或图形坐标,具体取决于 legend 被称为。

如果是4元组或 BboxBase 指定,然后指定bbox (x, y, width, height) 放置图例的位置。要将图例放置在轴(或图形)右下象限的最佳位置,请执行以下操作:

loc='best', bbox_to_anchor=(0.5, 0., 0.5, 0.5)

2-元组 (x, y) 放置由指定的图例角 loc 例如,要将图例的右上角置于轴(或图)的中心,可以使用以下关键字:

loc='upper right', bbox_to_anchor=(0.5, 0.5)
ncol : 整数

图例的列数。默认值为1。

prop : None or matplotlib.font_manager.FontProperties 或DICT : 无或matplotlib.font_manager.fontproperties或dict

图例的字体属性。如果没有(默认),则当前 matplotlib.rcParams 将被使用。

字体大小 : int或float或'x x-small'、'x-small'、'small'、'medium'、'large'、'x-large'、'x x-large'

控制图例的字体大小。如果该值是数字,则大小将是以点为单位的绝对字体大小。字符串值是相对于当前默认字体大小的。此参数仅在以下情况下使用 prop 未指定。

点数 : 无或int

为创建图例项时,图例中标记点的数目 Line2D (线)。默认是 None ,它将从 rcParams["legend.numpoints"] .

散乱点 : 无或int

为创建图例项时,图例中标记点的数目 PathCollection (散点图)。默认是 None ,它将从 rcParams["legend.scatterpoints"] .

散乱偏移 : 不可浮点数

为散点图图例项创建的标记的垂直偏移量(相对于字体大小)。0.0位于图例文本的底部,1.0位于顶部。若要在同一高度绘制所有标记,请设置为 [0.5] . 默认是 [0.375, 0.5, 0.3125] .

马氏标度 : 无、int或float

图例标记相对于原始绘制标记的相对大小。默认是 None ,它将从 rcParams["legend.markerscale"] .

马克先 : 布尔

如果 True ,图例标记放置在图例标签的左侧。如果 ,图例标记放置在图例标签的右侧。默认是 True .

框架 : 无或布尔

控制是否应在修补程序(框架)上绘制图例。默认是 None ,它将从 rcParams["legend.frameon"] .

软盒 : 无或布尔

控制是否应在 FancyBboxPatch 这就是传说的背景。默认是 None ,它将从 rcParams["legend.fancybox"] .

阴影 : 无或布尔

控制是否在图例后面绘制阴影。默认是 None ,它将从 rcParams["legend.shadow"] .

框架α : 无或浮动

控制图例背景的透明度。默认是 None ,它将从 rcParams["legend.framealpha"] . 如果阴影被激活并且 框架αNone ,默认值将被忽略。

脸色 : 无或“继承”或颜色规格

控制图例的背景色。默认是 None ,它将从 rcParams["legend.facecolor"] . 如果 "inherit" 它将需要 rcParams["axes.facecolor"] .

变色染料 : 无或“继承”或颜色规格

控制图例的背景面片边缘颜色。默认是 None ,它将从 rcParams["legend.edgecolor"] 如果 "inherit" 它将需要 rcParams["axes.edgecolor"] .

mode : “展开”,无

如果 mode 设置为 "expand" 图例将水平展开以填充轴区域(或 bbox_to_anchor 如果定义了图例的大小)。

bbox_transform : None or matplotlib.transforms.Transform : 无或matplotlib.transforms.transform

边界框的变换 (bbox_to_anchor )对于一个值 None (默认)轴' transAxes 将使用转换。

title : STR或无

传奇人物的头衔。默认为无标题 (None

title_fontsize: str or None

图例标题的字体大小。默认为默认字体大小。

边界焊盘 : 浮动或无

图例边框内的分数空白。以字号单位度量。默认是 None ,它将从 rcParams["legend.borderpad"] .

标签间距 : 浮动或无

图例项之间的垂直间距。以字体大小单位度量。默认是 None ,它将从 rcParams["legend.labelspacing"] .

手长 : 浮动或无

图例句柄的长度。以字号单位度量。默认是 None ,它将从 rcParams["legend.handlelength"] .

手持插件 : 浮动或无

图例句柄和文本之间的填充。以字体大小单位度量。默认是 None ,它将从 rcParams["legend.handletextpad"] .

边界轴焊盘 : 浮动或无

轴和图例边框之间的填充。以字号单位度量。默认是 None ,它将从 rcParams["legend.borderaxespad"] .

柱间距 : 浮动或无

列之间的间距。以字号单位度量。默认是 None ,它将从 rcParams["legend.columnspacing"] .

handler_map : 不记名

将实例或类型映射到图例处理程序的自定义字典。这个 handler_map 更新在中找到的默认处理程序映射 matplotlib.legend.Legend.get_legend_handler_map() .

笔记

用户可以使用 bbox_to_anchor 关键字参数。bbox-to-u锚定可以是bboxbase(或其衍生物)的实例,也可以是2或4个浮点的元组。见 set_bbox_to_anchor() 更多细节。

可以通过设置指定图例位置 loc 有一个2个浮点数的元组,它被解释为标准化轴坐标中图例的左下角。

codes = {'best': 0, 'center': 10, 'center left': 6, 'center right': 7, 'lower center': 8, 'lower left': 3, 'lower right': 4, 'right': 5, 'upper center': 9, 'upper left': 2, 'upper right': 1}
contains(event)[源代码]

测试艺术家是否包含鼠标事件。

返回真值和艺术家特定选择细节的字典,例如拾取半径中包含哪些点。有关详细信息,请参见单个艺术家。

draggable(state=None, use_blit=False, update='loc')[源代码]

设置可拖动状态——如果状态为

  • 无:切换当前状态
  • 正确:打开可拖动
  • 错误:关闭可拖动

如果启用了Draggable,则可以使用鼠标在画布上拖动图例。这个 DraggableLegend 如果启用draggable,则返回helper实例。

更新参数控制拖动时图例的哪个参数发生更改。如果更新为“loc”,则 loc 图例的参数已更改。如果“BBOX”, bbox_to_anchor 参数已更改。

draw(renderer)[源代码]

画出所有属于传说的东西。

draw_frame(b)[源代码]

将绘图框架设置为B。

参数:
b : 布尔
get_bbox_to_anchor()[源代码]

返回将锚定图例的bbox。

get_children()[源代码]

返回子艺术家列表。

classmethod get_default_handler_map()[源代码]

返回默认处理程序映射的类方法。

get_draggable()[源代码]

返回 True 如果传说是可拖动的, False 否则。

get_frame()[源代码]

返回 Rectangle 用于构建图例的实例。

get_frame_on()[源代码]

获取是否绘制图例框修补程序。

static get_legend_handler(legend_handler_map, orig_handle)[源代码]

从返回图例处理程序 legend_handler_map 相当于 orig_handler .

legend_handler_map 应该是字典对象(由get_legend_handler_map方法返回)。

它首先检查 orig_handle 它本身就是 legend_hanler_map 并返回关联值。否则,它按方法解析顺序检查每个类。如果找不到匹配的密钥,则返回 None .

get_legend_handler_map()[源代码]

返回处理程序映射。

get_lines()[源代码]

返回的列表 Line2D 图例中的实例。

get_patches()[源代码]

返回的列表 Patch 图例中的实例。

get_texts()[源代码]

返回的列表 Text 图例中的实例。

get_tightbbox(renderer)[源代码]

喜欢 Legend.get_window_extent ,但使用方框作为图例。

参数:
渲染器RendererBase 实例 : renderBase实例

将用于绘制图形的渲染器(即 fig.canvas.get_renderer()

返回:
`.BboxBase` : 包含图形像素坐标中的边界框。
get_title()[源代码]

返回 Text 图例标题的实例。

get_window_extent(renderer=None)[源代码]

返回图例的范围。

set_bbox_to_anchor(bbox, transform=None)[源代码]

设置要锚定图例的bbox。

bbox 可以是

  • A BboxBase 实例
  • 一个元组 (left, bottom, width, height) 在给定的转换中(如果没有标准化轴坐标)
  • 一个元组 (left, bottom) 其中宽度和高度假定为零。
classmethod set_default_handler_map(handler_map)[源代码]

用于设置默认处理程序映射的类方法。

set_draggable(state, use_blit=False, update='loc')[源代码]

启用或禁用对图例的鼠标拖动支持。

参数:
state : 布尔

是否启用鼠标拖动。

use_blit : 可选的布尔

使用Blitting可以更快地合成图像。详情见 FuncAnimation .

更新 : 'loc'、'bbox',可选

拖动时要更改的图例参数:

  • “loc”:更新 loc 图例的参数
  • “bbox”:更新 bbox_to_anchor 图例的参数
返回:
If *state* is ``True`` this returns the `~.DraggableLegend` helper
instance. Otherwise this returns ``None``.
set_frame_on(b)[源代码]

设置是否绘制图例框修补程序。

参数:
b : 布尔
set_title(title, prop=None)[源代码]

设置图例标题。fontproperties可以选择设置为 prop 参数。

classmethod update_default_handler_map(handler_map)[源代码]

更新默认处理程序映射的类方法。

zorder = 5

matplotlib.legend_handler

此模块定义默认的图例处理程序。

强烈建议您阅读 legend guide 在此文档之前。

图例处理程序应为具有以下签名的可调用对象。::

legend_handler(legend, orig_handle, fontsize, handlebox)

传奇 是传说本身, orig_handle 是原图, 字体大小 是以像素为单位的字体大小,以及 手提箱 是OffsetBox实例。在调用中,您应该创建相关的艺术家(使用 传奇 和/或 orig_handle )把它们放进手提箱里。艺术家需要根据字体大小进行缩放(请注意,大小以像素为单位,即这是dpi缩放值)。

此模块包括使用以下方法从基类(handlerBase)派生的几个图例处理程序类的定义:

def legend_artist(self, legend, orig_handle, fontsize, handlebox)
class matplotlib.legend_handler.HandlerBase(xpad=0.0, ypad=0.0, update_func=None)[源代码]

默认图例处理程序的基类。

派生类旨在重写 create_artists 方法,该方法具有以下签名。::

def create_artists(self, legend, orig_handle,
                   xdescent, ydescent, width, height, fontsize,
                   trans):

重写的方法需要创建符合给定维度(xdecent、ydescent、width、height)的给定转换的艺术家,如有必要,将按fontsize进行缩放。

adjust_drawing_area(legend, orig_handle, xdescent, ydescent, width, height, fontsize)[源代码]
create_artists(legend, orig_handle, xdescent, ydescent, width, height, fontsize, trans)[源代码]
legend_artist(legend, orig_handle, fontsize, handlebox)[源代码]

返回此handlerBase为给定的原始艺术家/句柄生成的艺术家。

参数:
传奇 : matplotlib.legend.Legend 实例 : Matplotlib.Legend.Legend实例

正在为其创建图例艺术家的图例。

orig_handle : matplotlib.artist.Artist 或类似 : Matplotlib.Artist.Artist或类似产品

正在为其创建这些图例艺术家的对象。

字体大小 : 浮动或int

字体大小(像素)。正在创建的艺术家应根据给定的字体大小进行缩放。

手提箱 : matplotlib.offsetbox.OffsetBox 实例 : matplotlib.offsetbox.offsetbox实例

为保存此图例项的艺术家而创建的框。艺术家创作于 legend_artist 方法必须添加到此方法内部的句柄框中。

update_prop(legend_handle, orig_handle, legend)[源代码]
class matplotlib.legend_handler.HandlerCircleCollection(yoffsets=None, sizes=None, **kw)[源代码]

汉德勒 CircleCollections .

create_collection(orig_handle, sizes, offsets, transOffset)[源代码]
class matplotlib.legend_handler.HandlerErrorbar(xerr_size=0.5, yerr_size=None, marker_pad=0.3, numpoints=None, **kw)[源代码]

误差线处理程序。

create_artists(legend, orig_handle, xdescent, ydescent, width, height, fontsize, trans)[源代码]
get_err_size(legend, xdescent, ydescent, width, height, fontsize)[源代码]
class matplotlib.legend_handler.HandlerLine2D(marker_pad=0.3, numpoints=None, **kw)[源代码]

汉德勒 Line2D 实例。

参数:
marker_pad : 浮动

图例项中点之间的填充。

点数 : 利息

要在图例项中显示的点数。

笔记

任何其他关键字参数都提供给 HandlerNpoints .

create_artists(legend, orig_handle, xdescent, ydescent, width, height, fontsize, trans)[源代码]
class matplotlib.legend_handler.HandlerLineCollection(marker_pad=0.3, numpoints=None, **kw)[源代码]

汉德勒 LineCollection 实例。

参数:
marker_pad : 浮动

图例项中点之间的填充。

点数 : 利息