matplotlib.colorbar#

颜色条是标量值到颜色映射的可视化表示。在Matplotlib中,它们被绘制到一个专用的Axes中。

注意

颜色条通常通过Figure.colorbar或其pyplot包装器pyplot.colorbar创建,这些函数内部使用Colorbar,并结合make_axes_gridspec(用于GridSpec定位的Axes)或make_axes(用于非GridSpec定位的Axes)。

最终用户通常不需要直接使用此模块的API。

class matplotlib.colorbar.Colorbar(ax, mappable=None, *, alpha=None, location=None, extend=None, extendfrac=None, extendrect=False, ticks=None, format=None, values=None, boundaries=None, spacing='uniform', drawedges=False, label='', cmap=None, norm=None, orientation=None, ticklocation='auto')[source]#

基类: object

在现有Axes中绘制颜色条。

通常,颜色条是使用Figure.colorbarpyplot.colorbar创建的,并与ScalarMappable对象(例如通过imshow生成的AxesImage)关联。

为了绘制与图中其他元素不关联的颜色条,例如单独显示一个颜色图时,可以创建一个空的ScalarMappable,或者直接将 cmapnorm 参数(而不是 mappable)传递给Colorbar

有用的公共方法包括set_label()add_lines()

属性:
axAxes

绘制颜色条的Axes实例。

lines列表

一个LineCollection列表(如果未绘制任何线,则为空)。

dividersLineCollection

一个LineCollection(如果drawedgesFalse,则为空)。

参数:
axAxes

绘制颜色条的Axes实例。

mappableScalarMappable

将使用其颜色图和范数的mappable对象。

若要按索引而非0-1比例显示颜色,请将mappable的范数设置为colors.NoNorm()

alpha浮点数

颜色条的透明度,范围在0(透明)到1(不透明)之间。

locationNone 或 {'left', 'right', 'top', 'bottom'}

设置颜色条的 orientation(方向)和 ticklocation(刻度位置)。左侧和右侧的颜色条是垂直的,顶部和底部的颜色条是水平的。ticklocationlocation相同,因此如果location是'top',则刻度在顶部。orientation和/或ticklocation也可以提供并覆盖location设置的值,但对于不兼容的组合将报错。

版本 3.7 新增。

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

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

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

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

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

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

extendrect布尔值

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

ticksNone 或 刻度列表 或 Locator

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

formatNone 或 str 或 Formatter

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

drawedges布尔值

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

label字符串

颜色条长轴上的标签。

boundaries, valuesNone 或 序列

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

spacing{'uniform', 'proportional'}

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

其他参数:
cmapColormap,默认值:rcParams["image.cmap"](默认值:'viridis'

要使用的颜色图。除非mappable为None,否则此参数将被忽略。

normNormalize

要使用的归一化。除非mappable为None,否则此参数将被忽略。

orientationNone 或 {'vertical', 'horizontal'}

如果为None,则使用由location决定的值。如果orientationlocation都为None,则默认为'vertical'。

ticklocation{'auto', 'left', 'right', 'top', 'bottom'}

颜色条刻度的位置。ticklocation必须与orientation匹配。例如,水平颜色条只能在顶部或底部有刻度。如果为'auto',则刻度将与location相同,因此位于左侧的颜色条刻度将在左侧。如果location为None,则水平颜色条的刻度将在底部,垂直颜色条的刻度将在右侧。

add_lines(*args, **kwargs)[source]#

在颜色条上绘制线条。

线条被添加到lines列表中。

参数:
levels类数组

线条的位置。

colors颜色或颜色列表

应用于所有线条的单一颜色,或每条线条一个颜色值。

linewidths浮点数或类数组

应用于所有线条的单一线宽,或每条线条一个线宽。

erase布尔值,默认值:True

是否移除之前添加的任何线条。

备注

此外,此方法也可以使用签名colorbar.add_lines(contour_set, erase=True)调用,在这种情况下,levelscolorslinewidths将取自contour_set

drag_pan(button, key, x, y)[source]#
property formatter#

颜色条的主刻度标签Formatter

get_ticks(minor=False)[source]#

将刻度作为位置列表返回。

参数:
minor布尔值,默认值:False

如果为True,则返回次要刻度。

property locator#

颜色条的主刻度Locator

property long_axis#

带有装饰(刻度等)的轴。

property minorformatter#

颜色条的次刻度Formatter

property minorlocator#

颜色条的次刻度Locator

minorticks_off()[source]#

关闭颜色条的次刻度。

minorticks_on()[source]#

打开颜色条的次刻度。

n_rasterize = 50#
remove()[source]#

从图中移除此颜色条。

如果颜色条是使用use_gridspec=True创建的,则恢复之前的网格规范。

set_alpha(alpha)[source]#

设置透明度,范围在0(透明)到1(不透明)之间。

如果提供了数组,alpha将被设置为None,以使用与颜色图关联的透明度值。

set_label(label, *, loc=None, **kwargs)[source]#

为颜色条的长轴添加标签。

参数:
label字符串

标签文本。

loc字符串,可选

标签的位置。

  • 对于水平方向,可选值为{'left', 'center', 'right'}

  • 对于垂直方向,可选值为{'bottom', 'center', 'top'}

根据方向,默认为rcParams["xaxis.labellocation"](默认值:'center')或rcParams["yaxis.labellocation"](默认值:'center')。

**kwargs

关键字参数传递给set_xlabel / set_ylabel。支持的关键字是labelpadText属性。

set_ticklabels(ticklabels, *, minor=False, **kwargs)[source]#

[不推荐] 设置刻度标签。

不建议使用

不推荐使用此方法,因为它依赖于刻度位置。在大多数情况下,您会希望使用set_ticks(positions, labels=labels)

如果您使用此方法,应始终事先固定刻度位置,例如使用Colorbar.set_ticks或在颜色条的长轴上显式设置FixedLocator。否则,刻度可能会自由移动,标签可能最终出现在意想不到的位置。

参数:
ticklabels字符串序列或Text序列

用于标记由Colorbar.set_ticks设置的序列中每个刻度位置的文本;标签的数量必须与位置的数量匹配。

update_ticks布尔值,默认值:True

此关键字参数将被忽略并移除。已弃用

minor布尔值

如果为 True,则设置次要刻度而不是主要刻度。

**kwargs

标签的Text属性。

set_ticks(ticks, *, labels=None, minor=False, **kwargs)[source]#

设置刻度位置。

参数:
ticks一维类数组

刻度位置列表。

labels字符串列表, 可选

刻度标签列表。如果未设置,标签将显示数据值。

minor布尔值,默认为:False

如果为False,则设置主刻度;如果为True,则设置次刻度。

**kwargs

标签的Text属性。这些属性仅在您传递labels时生效。在其他情况下,请使用tick_params

update_normal(mappable=None)[source]#

更新实心补丁、线条等。

当此颜色条所属的图像或等高线图的范数发生变化时,应调用此函数。

如果mappable上的范数与之前不同,这将重置轴的定位器和格式化器,因此如果这些已进行自定义,则需要再次自定义。但是,如果范数只改变了vminvmaxcmap的值,则旧的格式化器和定位器将保留。

update_ticks()[source]#

设置刻度和刻度标签。用户通常不需要此操作。

matplotlib.colorbar.ColorbarBase[source]#

Colorbar的别名

matplotlib.colorbar.make_axes(parents, location=None, orientation=None, fraction=0.15, shrink=1.0, aspect=20, **kwargs)[source]#

创建一个适用于颜色条的Axes

通过调整parents的大小和重新定位,将此Axes放置在parents Axes的图中。

参数:
parentsAxes或可迭代对象,或numpy.ndarray形式的Axes

用作放置颜色条的父级Axes。

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)。

返回:
caxAxes

子Axes。

kwargs字典

创建颜色条实例时要传递的精简关键字字典。

matplotlib.colorbar.make_axes_gridspec(parent, *, location=None, orientation=None, fraction=0.15, shrink=1.0, aspect=20, **kwargs)[source]#

创建一个适用于颜色条的Axes

通过调整parent的大小和重新定位,将此Axes放置在parent Axes的图中。

此函数与make_axes相似,且大部分兼容。主要区别在于

参数:
父级Axes

用作放置颜色条的父级的 Axes。

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)。

返回:
caxAxes

子Axes。

kwargs字典

创建颜色条实例时要传递的精简关键字字典。