matplotlib.figure.SubFigure.colorbar#

SubFigure.colorbar(mappable, cax=None, ax=None, use_gridspec=True, **kwargs)[source]#

向绘图添加一个颜色条。

参数:
mappable

此颜色条所描述的 matplotlib.cm.ScalarMappable (即 AxesImageContourSet 等)。此参数对于 Figure.colorbar 方法是强制性的,但对于 pyplot.colorbar 函数是可选的,后者将默认值设置为当前图像。

请注意,可以“即时”创建一个 ScalarMappable 来生成未附着于先前绘制的 artist 的颜色条,例如:

fig.colorbar(cm.ScalarMappable(norm=norm, cmap=cmap), ax=ax)
caxAxes, 可选

将颜色条绘制到的 Axes。如果为 None,则会创建一个新的 Axes,其空间将从 ax 中指定的 Axes 中“窃取”。

axAxes 或可迭代对象或 numpy.ndarray 形式的 Axes,可选

将从中窃取空间以创建新颜色条 Axes 的一个或多个父 Axes。此参数仅在未设置 cax 时使用。

默认为包含用于创建颜色条的 mappable 的 Axes。

use_gridspecbool, 可选

如果 caxNone,则会创建一个新的 cax 作为 Axes 的实例。如果 ax 使用 subplotspec 定位,并且 use_gridspecTrue,则 cax 也会使用 subplotspec 定位。

返回:
colorbarColorbar
其他参数:
locationNone 或 {'left', 'right', 'top', 'bottom'}

颜色条 Axes 相对于父 Axes 的创建位置。它还决定了颜色条的 orientation(左右两侧的颜色条是垂直的,顶部和底部的颜色条是水平的)。如果为 None,则位置将从 orientation(如果已设置)中获取(垂直颜色条在右侧,水平颜色条在底部),或者在 orientation 未设置时默认为 'right'。

orientationNone 或 {'vertical', 'horizontal'}

颜色条的方向。最好设置颜色条的 location,因为它也决定了方向;传递不兼容的 locationorientation 值会引发异常。

fractionfloat, 默认值: 0.15

用于颜色条的原始 Axes 的比例。

shrinkfloat, 默认值: 1.0

颜色条大小的乘法因子。

aspectfloat, 默认值: 20

长短尺寸比。

padfloat, 默认值: 0.05 if vertical, 0.15 if horizontal

颜色条与新图像 Axes 之间的原始 Axes 比例。

anchor(float, float), 可选

颜色条 Axes 的锚点。垂直时默认为 (0.0, 0.5);水平时默认为 (0.5, 1.0)。

panchor(float, float), 或 False, 可选

颜色条父 Axes 的锚点。如果为 False,则父 Axes 的锚点将保持不变。垂直时默认为 (1.0, 0.5);水平时默认为 (0.5, 0.0)。

extend{'neither', 'both', 'min', 'max'}

为超出范围的值制作尖头末端(除非是 'neither')。这些是通过 colormap 的 set_under 和 set_over 方法为给定 colormap 设置的。

extendfrac{None, 'auto', length, lengths}

如果设置为 None,则最小和最大三角形颜色条扩展的长度均为内部颜色条长度的 5%(这是默认设置)。

如果设置为 'auto',则使三角形颜色条扩展的长度与内部框的长度相同(当 spacing 设置为 'uniform' 时),或与相应的相邻内部框的长度相同(当 spacing 设置为 'proportional' 时)。

如果是一个标量,表示最小和最大三角形颜色条扩展的长度占内部颜色条长度的比例。也可以给定一个包含两个元素的分数序列,分别表示最小和最大颜色条扩展的长度占内部颜色条长度的比例。

extendrectbool

如果为 False,最小和最大颜色条扩展将是三角形的(默认)。如果为 True,扩展将是矩形的。

ticksNone 或 刻度列表 或 Locator

如果为 None,则刻度自动从输入中确定。

formatNone 或 str 或 Formatter

如果为 None,则使用 ScalarFormatter。支持格式字符串,例如 "%4.2e""{x:.2e}"。也可以给定一个替代的 Formatter

drawedgesbool

是否在颜色边界处绘制线条。

labelstr

颜色条长轴上的标签。

boundaries, valuesNone 或 序列

如果未设置,色图将以 0-1 刻度显示。如果是序列,则 values 的长度必须比 boundaries 少 1。对于 boundaries 中相邻条目所限定的每个区域,将使用映射到 values 中相应值的颜色。每个区域的大小由 spacing 参数决定。通常仅适用于索引颜色(即 norm=NoNorm())或其他不寻常情况。

spacing{'uniform', 'proportional'}

对于离散颜色条 (BoundaryNorm 或等高线),'uniform' 使每种颜色占用相同的空间;'proportional' 使空间与数据间隔成比例。

备注

如果 mappable 是一个 ContourSet,其 extend kwarg 会自动包含。

shrink kwarg 提供了一种简单的方法来相对于 Axes 缩放颜色条。请注意,如果指定了 cax,它将决定颜色条的大小,而 shrinkaspect 将被忽略。

为了更精确的控制,您可以手动指定绘制 mappable 和颜色条的 axes 对象的位置。在这种情况下,不要使用任何 Axes 属性 kwarg。

已知一些矢量图形查看器(svg 和 pdf)在颜色条段之间渲染白色间隙。这是由于查看器中的错误,而不是 Matplotlib。作为一种变通方法,可以使用重叠段渲染颜色条

cbar = colorbar()
cbar.solids.set_edgecolor("face")
draw()

然而,这在其他情况下会产生负面影响,例如半透明图像(alpha < 1)和颜色条扩展;因此,默认情况下不使用此变通方法(参见问题 #1188)。

使用 matplotlib.figure.SubFigure.colorbar 的示例#

图形子图形

图形子图形