🔗 运行环境:Matlab
🚩 撰写作者:左手の明天
🥇 精选专栏:《python》
🔥 推荐专栏:《算法研究》
#### 防伪水印——左手の明天 ####
💗 大家好🤗🤗🤗,我是左手の明天!好久不见💗
💗今天更新系列【Matlab函数分析】——colormap查看并设置当前颜色图💗
📆 最近更新:2024 年 05 月 28 日,左手の明天的第 333 篇原创博客
📚 更新于专栏:matlab
#### 防伪水印——左手の明天 ####
颜色图
颜色图是由值组成的矩阵,这些值用于定义诸如曲面、图像以及补片之类的图形对象的颜色。MATLAB通过将数据值映射到颜色图中的颜色来绘制这些对象。
颜色图可以为任意长度,但宽度必须为三列。矩阵中的每一行均使用 RGB 三元组定义一种颜色。RGB 三元组是包含三个元素的行向量,其元素分别指定颜色中红、绿、蓝分量的强度。通常,强度是 [0, 1] 范围内的 double
或 single
值。值 0
表示无颜色,值 1
表示全强度。例如,以下命令将创建一个包含五种颜色(黑色、红色、绿色、蓝色和白色)的颜色图。
mymap = [0 0 0
1 0 0
0 1 0
0 0 1
1 1 1];
要更改可视化的颜色方案,请调用 colormap
函数以更改所属坐标区或图窗的颜色图。例如,以下命令将创建一个曲面图,并将图窗的颜色图设置为 mymap
。
surf(peaks)
colormap(mymap)
三列矩阵
要创建自定义颜色图,将 map
指定为 RGB 三元组组成的三列矩阵(其中每行定义一种颜色)。RGB 三元组是包含三个元素的行向量,其元素分别指定颜色中红、绿、蓝分量的强度。强度可以是 [0, 1] 范围内的 double
或 single
值,也可以是 [0, 255] 范围内的 uint8
值。例如,此矩阵定义一个包含五种颜色的颜色图。
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 三元组值。
颜色 | double 或 single RGB 三元组 | uint8 RGB 三元组 |
---|---|---|
黄色 | [1 1 0] | [255 255 0] |
品红色 | [1 0 1] | [255 0 255] |
青蓝色 | [0 1 1] | [0 255 255] |
红色 | [1 0 0] | [255 0 0] |
绿色 | [0 1 0] | [0 255 0] |
蓝色 | [0 0 1] | [0 0 255] |
白色 | [1 1 1] | [255 255 255] |
黑色 | [0 0 0] | [0 0 0] |
colormap
设置颜色图
如果为图窗设置了颜色图,图窗中的坐标区和图将使用相同的颜色图。新颜色图的长度(颜色数)与当前颜色图相同。当使用此语法时,不能为颜色图指定自定义长度。
colormap(map)
将当前图窗的颜色图设置为map
指定的颜色图。例如,colormap hot
将颜色图设置为hot
。colormap(target,map)
为target
指定的图窗、坐标区或独立可视化设置颜色图,而不是为当前图窗设置颜色图。cmap = colormap(___)
设置颜色图,并将其以由 RGB 三元组组成的三列矩阵形式返回。使用上述任一使用圆括号的语法将cmap
指定为输出参量。
colormap
获取当前颜色图
cmap = colormap
返回当前图窗的颜色图,形式为 RGB 三元组组成的三列矩阵。cmap = colormap(target
)
返回由target
指定的图窗、坐标区或独立可视化的颜色图。
示例
更改图窗的颜色图
(1)创建一个曲面图并将颜色图设置为 winter
。
surf(peaks)
colormap winter
(2)创建一个曲面图并将颜色图设置为 summer。
surf(peaks)
colormap summer
(3)现在将颜色图设置回系统的默认值。如果尚未指定不同默认值,则默认颜色图是 parula
。
colormap default
对图窗中的每个坐标区使用不同的颜色图
可以使用 tiledlayout
和 nexttile
函数显示分块图。调用 tiledlayout
函数以创建一个 2×1 分块图布局。调用 nexttile
函数以创建坐标区对象 ax1
和 ax2
。通过将坐标区对象传递给 colormap
函数,为每个坐标区指定不同的颜色图。在上坐标区中,使用 spring
颜色图创建一个曲面图。在下坐标区中,使用 winter
颜色图创建一个曲面图。
tiledlayout(2,1)
ax1 = nexttile;
surf(peaks)
colormap(ax1,spring)
ax2 = nexttile;
surf(peaks)
colormap(ax2,winter)
指定颜色图的颜色数
通过将整数作为内置颜色图的输入参量传递来指定用于颜色图的颜色数。使用 parula 颜色图中的五种颜色。
mesh(peaks)
colormap(parula(5))
创建自定义颜色图
通过定义一个由介于 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)
返回用在绘图中的颜色图值
创建 peaks
函数的曲面图并指定颜色图。
mesh(peaks)
colormap(autumn(5))
返回定义用在绘图中使用的颜色的值的三列矩阵。每行是一个指定颜色图的一种颜色的 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
函数,返回特定坐标区的颜色图值。
使用 tiledlayout
和 nexttile
函数创建两个分块图。调用 tiledlayout
函数以创建一个 2×1 分块图布局。调用 nexttile
函数以创建坐标区对象 ax1
和 ax2
。然后显示两个以不同颜色图填充的等高线图。
tiledlayout(2,1)
ax1 = nexttile;
contourf(peaks)
colormap(ax1,hot(8))
ax2 = nexttile;
contourf(peaks)
colormap(ax2,pink)
通过将 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