matplotlib.figure.SubFigure.colorbar#
- SubFigure.colorbar(mappable, cax=None, ax=None, use_gridspec=True, **kwargs)[source]#
向绘图添加一个颜色条。
- 参数:
- mappable
此颜色条所描述的
matplotlib.cm.ScalarMappable
(即AxesImage
、ContourSet
等)。此参数对于Figure.colorbar
方法是强制性的,但对于pyplot.colorbar
函数是可选的,后者将默认值设置为当前图像。请注意,可以“即时”创建一个
ScalarMappable
来生成未附着于先前绘制的 artist 的颜色条,例如:fig.colorbar(cm.ScalarMappable(norm=norm, cmap=cmap), ax=ax)
- cax
Axes
, 可选 将颜色条绘制到的 Axes。如果为
None
,则会创建一个新的 Axes,其空间将从 ax 中指定的 Axes 中“窃取”。- ax
Axes
或可迭代对象或numpy.ndarray
形式的 Axes,可选 将从中窃取空间以创建新颜色条 Axes 的一个或多个父 Axes。此参数仅在未设置 cax 时使用。
默认为包含用于创建颜色条的 mappable 的 Axes。
- use_gridspecbool, 可选
如果 cax 为
None
,则会创建一个新的 cax 作为 Axes 的实例。如果 ax 使用 subplotspec 定位,并且 use_gridspec 为True
,则 cax 也会使用 subplotspec 定位。
- 返回:
- colorbar
Colorbar
- colorbar
- 其他参数:
- locationNone 或 {'left', 'right', 'top', 'bottom'}
颜色条 Axes 相对于父 Axes 的创建位置。它还决定了颜色条的 orientation(左右两侧的颜色条是垂直的,顶部和底部的颜色条是水平的)。如果为 None,则位置将从 orientation(如果已设置)中获取(垂直颜色条在右侧,水平颜色条在底部),或者在 orientation 未设置时默认为 'right'。
- orientationNone 或 {'vertical', 'horizontal'}
颜色条的方向。最好设置颜色条的 location,因为它也决定了方向;传递不兼容的 location 和 orientation 值会引发异常。
- 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,它将决定颜色条的大小,而 shrink 和 aspect 将被忽略。
为了更精确的控制,您可以手动指定绘制 mappable 和颜色条的 axes 对象的位置。在这种情况下,不要使用任何 Axes 属性 kwarg。
已知一些矢量图形查看器(svg 和 pdf)在颜色条段之间渲染白色间隙。这是由于查看器中的错误,而不是 Matplotlib。作为一种变通方法,可以使用重叠段渲染颜色条
cbar = colorbar() cbar.solids.set_edgecolor("face") draw()
然而,这在其他情况下会产生负面影响,例如半透明图像(alpha < 1)和颜色条扩展;因此,默认情况下不使用此变通方法(参见问题 #1188)。