来源:https://ww2.mathworks.cn/help/matlab/ref/colormap.html?searchHighlight=colormap&s_tid=doc_srchtitle#buc3wsn-1-map

查看并设置当前颜色图

全页折叠
 

说明

示例

colormap map 将当前图窗的颜色图设置为预定义的颜色图之一。如果您为图窗设置了颜色图,图窗中的坐标区和图将使用相同的颜色图。新颜色图的长度(颜色数)与当前颜色图相同。当您使用此语法时,不能为颜色图指定自定义长度。有关颜色图的详细信息,请参阅什么是颜色图?

示例

colormap(map) 将当前图窗的颜色图设置为 map 指定的颜色图。

示例

colormap(target,map)target 指定的图窗、坐标区或图形设置颜色图,而不是为当前图窗设置颜色图。

示例

cmap = colormap 返回当前图窗的颜色图,形式为 RGB 三元组组成的三列矩阵。

示例

cmap = colormap(target) 返回 target 指定的图窗、坐标区或图的颜色图。

 

示例

更改图窗的颜色图

尝试此示例

创建一个曲面图并将颜色图设置为 winter

surf(peaks)
colormap winter

matlab中colormap-LMLPHP

 
 

将颜色图设置回默认值

尝试此示例

首先,将当前图窗的颜色图更改为 summer

surf(peaks)
colormap summer

matlab中colormap-LMLPHP

现在将颜色图设置回您系统的默认值。如果您尚未指定不同默认值,则默认颜色图是 parula

colormap default

matlab中colormap-LMLPHP

 
 

对图窗中的每个坐标区使用不同的颜色图

尝试此示例

创建一个包含两个子图的图窗,并存储坐标区句柄 ax1ax2。通过将坐标区句柄传递给 colormap 函数对每个坐标区使用不同颜色图。在上部子图中,使用 spring 颜色图创建一个曲面图。在下部子图中,使用 winter 颜色图创建一个曲面图。

ax1 = subplot(2,1,1);
surf(peaks)
colormap(ax1,spring) ax2 = subplot(2,1,2);
surf(peaks)
colormap(ax2,winter)

matlab中colormap-LMLPHP

 
 

指定颜色图的颜色数

尝试此示例

通过将整数作为内置颜色图的输入参数传递来指定用于颜色图的颜色数。使用 parula 颜色图中的五种颜色。

mesh(peaks)
colormap(parula(5))

matlab中colormap-LMLPHP

 
 

创建自定义颜色图

尝试此示例

通过定义一个由介于 0.0 和 1.0 之间的值组成的三列矩阵来创建一个自定义颜色图。每行定义一个三元素 RGB 三元组。第一列指定红色强度。第二列指定绿色强度。第三列指定蓝色强度。

通过将前两个列设置为零来使用蓝色值的颜色图。

map = [0 0 0.3
0 0 0.4
0 0 0.5
0 0 0.6
0 0 0.8
0 0 1.0]; surf(peaks)
colormap(map)

matlab中colormap-LMLPHP

 
 

返回用在绘图中的颜色图值

尝试此示例

创建 peaks 函数的曲面图并指定颜色图。

mesh(peaks)
colormap(autumn(5))

matlab中colormap-LMLPHP

返回定义用在绘图中使用的颜色的值的三列矩阵。每行是一个指定颜色图的一种颜色的 RGB 三元组颜色值。

cmap = colormap
cmap = 5×3

    1.0000         0         0
1.0000 0.2500 0
1.0000 0.5000 0
1.0000 0.7500 0
1.0000 1.0000 0
 
 

返回特定坐标区的颜色图值

尝试此示例

通过将其坐标区句柄传递给 colormap 函数返回特定坐标区的颜色图值。

创建一个包含两个子图的图窗,并返回子图的坐标区句柄 ax1ax2。将填充的等高线图添加到每个坐标区并对每个坐标区使用不同颜色图。

ax1 = subplot(2,1,1);
contourf(peaks)
colormap(ax1,hot(8)) ax2 = subplot(2,1,2);
contourf(peaks)
colormap(ax2,pink)

matlab中colormap-LMLPHP

通过将其坐标区句柄 ax1 传递给 colormap 函数来返回用在上部子图中的颜色图值。每行是一个指定颜色图的一种颜色的 RGB 三元组颜色值。

cmap = colormap(ax1)
cmap = 8×3

    0.3333         0         0
0.6667 0 0
1.0000 0 0
1.0000 0.3333 0
1.0000 0.6667 0
1.0000 1.0000 0
1.0000 1.0000 0.5000
1.0000 1.0000 1.0000
 
 

将图窗的颜色图更改为图像

尝试此示例

加载 spine 数据集以返回 X 及其关联的颜色图 map。使用 image 函数显示 X 并将颜色图设置为 map

load spine
image(X)
colormap(map)

matlab中colormap-LMLPHP

 
 

输入参数

map - 新颜色方案的颜色图
颜色图名称 | 由 RGB 三元组组成的三列矩阵 | 'default'

新颜色方案的颜色图,指定为颜色图名称、由 RGB 三元组组成的三列矩阵或 'default'。颜色图名称指定一个与当前颜色图具有相同颜色数的预定义颜色图。由 RGB 三元组组成的三列矩阵指定一个自定义颜色图。您可以自行创建该矩阵,也可以调用一个预定义的颜色图函数来创建矩阵。例如,colormap(parula(10)) 将当前图窗的颜色图设置为从 parula 颜色图中选择的 10 种颜色。

'default' 将目标对象的颜色图设置为默认颜色图。

颜色图名称

下表列出了预定义的颜色图。

parula

matlab中colormap-LMLPHP

jet

matlab中colormap-LMLPHP

hsv

matlab中colormap-LMLPHP

hot

matlab中colormap-LMLPHP

cool

matlab中colormap-LMLPHP

spring

matlab中colormap-LMLPHP

summer

matlab中colormap-LMLPHP

autumn

matlab中colormap-LMLPHP

winter

matlab中colormap-LMLPHP

gray

matlab中colormap-LMLPHP

bone

matlab中colormap-LMLPHP

copper

matlab中colormap-LMLPHP

pink

matlab中colormap-LMLPHP

lines

matlab中colormap-LMLPHP

colorcube

matlab中colormap-LMLPHP

prism

matlab中colormap-LMLPHP

flag

matlab中colormap-LMLPHP

white

matlab中colormap-LMLPHP

三列矩阵

要创建自定义颜色图,请将 map 指定为 RGB 三元组组成的三列矩阵(其中每行定义一种颜色)。RGB 三元组是包含三个元素的行向量,其元素分别指定颜色中红、绿、蓝分量的强度。强度必须处于范围 [0,1] 中。例如,此矩阵定义一个包含五种颜色的颜色图。

map = [0.2 0.1 0.5
0.1 0.5 0.8
0.2 0.7 0.6
0.8 0.7 0.3
0.9 1 0];

下表列出了常见颜色的 RGB 三元组值。

黄色[1 1 0]
品红色[1 0 1]
青蓝色[0 1 1]
红色[1 0 0]
绿色[0 1 0]
蓝色[0 0 1]
白色[1 1 1]
黑色[0 0 0]

数据类型: char | double

target - 目标
Figure 对象 | Axes 对象 | PolarAxes 对象 | 图形对象

目标,指定为下列值之一:

  • Figure 对象。图窗的颜色图作用于图窗中所有坐标区上的绘图。

  • Axes 对象或 PolarAxes 对象。您可以为图窗中的每个坐标区定义一个唯一的颜色图。

  • 具有 Colormap 属性的图形对象。例如,您可以更改或查询 HeatmapChart 对象的颜色图。

输出参数

cmap - 颜色图值
由 RGB 三元组组成的三列矩阵

颜色图值,以由 RGB 三元组组成的三列矩阵形式返回。矩阵的每行定义一个指定颜色图的一种颜色的 RGB 三元组。这些值在 [0, 1] 范围内。

详细信息

什么是颜色图?

颜色图是由介于 01 之间的值组成的矩阵,用于定义诸如曲面、图像以及补片之类的图形对象的颜色。MATLAB 通过将数据值映射到颜色图中的颜色来绘制这些对象。

颜色图可以为任意长度,但宽度必须为三列。矩阵中的每一行均使用 RGB 三元组定义一种颜色。RGB 三元组是包含三个元素的行向量,其元素分别指定颜色中红、绿、蓝分量的强度。强度必须在 [0, 1] 范围内。值 0 表示无颜色,值 1 表示全强度。例如,以下命令将创建一个包含五种颜色(黑色、红色、绿色、蓝色和白色)的颜色图。

mymap = [0 0 0
1 0 0
0 1 0
0 0 1
1 1 1];

要更改可视化的颜色方案,请调用 colormap 函数以更改所属坐标区或图窗的颜色图。例如,以下命令将创建一个曲面图,并将图窗的颜色图设置为 mymap

surf(peaks)
colormap(mymap)

matlab中colormap-LMLPHP

兼容性考虑

  • 从 R2018a 开始,如果您为图窗设置颜色图,则图窗中的坐标区和图将使用相同的颜色图。以前,当您设置图窗颜色图时,任何显式设置了颜色图的坐标区或图都不受影响。如果您希望 Axes 对象使用与图窗不同的颜色图,请在设置图窗颜色图之后设置坐标区颜色图。

  • 从 R2014b 开始,默认颜色图为 parula。在以前的版本中,默认颜色图为 jet

05-23 19:17