欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Matlab函数解释:colormap

程序员文章站 2022-03-27 08:54:59
...

本文档参考mathworks的官方文档。

本文档内容在matlab2016a 上运行通过。

colormap:查看并设置当前颜色图。

配色:通过将一个颜色方案,分配给一张图,使得一张黑白图彩色化。例如,画油画,首先是素描出物体的轮廓,接着是给画出的物体涂上适宜的颜色,这个记录不同物体对应的颜色的映射,就是配色方案。

调用命令:

colormap map
colormap(map)
colormap(target,map)
cmap = colormap
cmap = colormap(target)

命令效果:

1,colormap map 将当前图窗的颜色图设置为预定义的颜色图之一。图窗的颜色图作用于图窗中的所有坐标区,除非您分别为每个坐标区设置颜色图。新颜色图的长度(颜色数)与当前颜色图相同。

注意:当您使用此命令时,不能为颜色图指定自定义长度。

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

注意:目前没有没有发现命令1和2使用效果的区别,可能命令1少打两个括号,更便捷?测试出来的一个是colormap(default)不识别,colormap default 可以。

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

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

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

实例1:

colormap map 将当前图窗的颜色图设置为预定义的颜色图之一。图窗的颜色图作用于图窗中的所有坐标区,除非您分别为每个坐标区设置颜色图。新颜色图的长度(颜色数)与当前颜色图相同。注意:当您使用此命令时,不能为颜色图指定自定义长度。

figure
surf(sphere)

colormap autumn

效果:

左边是原图,右边是使用该命令后的效果。

实例2:

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

figure
surf(sphere)
colormap(winter(6))
figure
surf(sphere)
colormap(winter);

效果:

左边的图和右边的图差距不是很大,需要细调。

实例3:

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

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

map = [0.3, 0, 0
0.4, 0, 0
0.5, 0, 0
0.6, 0, 0
0.8, 0, 0
1.0, 0, 0];

figure
surf(sphere)
colormap(map)

效果:

颜色的层次感还是可以的。

实例4:

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

和其他命令一样,该命令有默认的输入值,

colormap default 和colormap 本身的配色方案一致。也就是说可以通过该命令,将调整后的图调回原样。

效果:

可以看出两张图的配色是一致的。

实例5:

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

注意:关于matlab图形对象的章节,将在下下周的笔记中作介绍,目前只写出一些满足当前需要的部分。

matlab的每一个图,都可以认为是坐标轴axes对象的一个实例,因此,可以将它的坐标赋值给这样的对象(可能表述的不太清楚,希望之后的文章可以讲解的细致一点儿。)

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

效果:

上下两张图的配色方案对应于设定值。

实例6:

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

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

默认输入为当前窗口。

figure
axes1 = subplot(2,1,1);
contourf(sphere)
colormap(axes1,hot(10))
cmap=colormap(axes1)
axes2 = subplot(2,1,2);
contourf(sphere)
colormap(axes2,copper)
cmap=colormap(axes2)

效果:

cmap =

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.2500
1.0000    1.0000    0.5000
1.0000    1.0000    0.7500
1.0000    1.0000    1.0000

cmap =

     0         0         0
0.0198    0.0124    0.0079
0.0397    0.0248    0.0158
0.0595    0.0372    0.0237
0.0794    0.0496    0.0316
0.0992    0.0620    0.0395
0.1190    0.0744    0.0474

0.1389    0.0868    0.0553

第二张图的只写了一部分。

高级部分:

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

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

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

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

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