Matlab作图:设置曲面颜色及范围函数 caxis

本文最后更新于:2021年8月15日 上午

语法

1
2
3
4
5
caxis(limits)
caxis('auto')
caxis('manual')
caxis(target,___)
cl = caxis

说明

caxis(limits) 设置当前坐标区的颜色图范围。limits[cmin cmax] 形式的二元素向量。颜色图索引数组中小于或等于 cmin 的所有值映射到颜色图的第一行。大于或等于 cmax 的所有值映射到颜色图的最后一行。介于 cmincmax 之间的所有值以线性方式映射到颜色图的中间各行。

注意

caxis 函数只影响 CDataMapping 属性设置为 'scaled' 的图形对象,不影响使用真彩色或 CDataMapping 设置为 'direct' 的图形对象。

caxis('auto') 在颜色图索引数组中的值更改时启用自动范围更新。这是默认行为。caxis auto 命令是此语法的另一种形式。

caxis('manual') 禁用自动范围更新。caxis manual 命令是此语法的另一种形式。

caxis(target,___) 为特定坐标区或图设置颜色图范围。指定 target 作为上述任何语法中的第一个输入参数。

cl = caxis 返回当前坐标区或图的当前颜色图范围。

示例

提高下限

绘制带有颜色栏的抛物面。

1
2
3
4
[X,Y] = meshgrid(-5:.5:5);
Z = X.^2 + Y.^2;
surf(Z);
colorbar
img

获取当前颜色范围。

1
2
3
4
lim = caxis
lim = 1×2

0 50

将下限提高到 20。请注意,小于或等于 20 的所有 Z 值映射到第一种颜色。

1
caxis([20 50])
img

保持多个曲面图的颜色范围不变

创建两个垂直偏移的抛物面。

1
2
3
[X,Y] = meshgrid(-5:.5:5);
Z1 = X.^2 + Y.^2;
Z2 = Z1 + 50;

绘制第一个抛物面。添加颜色栏,然后保持第二个抛物面的坐标区不变。

1
2
3
surf(X,Y,Z1);
colorbar
hold on
img

使用 'manual' 选项保持当前颜色范围不变。然后绘制第二个抛物面。

1
2
caxis('manual');
surf(X,Y,Z2);
img

指定曲面图的颜色图颜色

通过包含第四个矩阵输入 C 来指定曲面图的颜色。曲面图使用 Z 表示高度,C 表示颜色。使用颜色图指定颜色,该颜色图使用单个数字表示色谱上的颜色。使用颜色图时,CZ 大小相同。向图中添加颜色栏以显示 C 中的数据值如何对应于颜色图中的颜色。

1
2
3
4
5
[X,Y] = meshgrid(1:0.5:10,1:20);
Z = sin(X) + cos(Y);
C = X.*Y;
surf(X,Y,Z,C)
colorbar
img

为曲面图指定真彩色

通过包含第四个矩阵输入 CO 来指定曲面图的颜色。曲面图使用 Z 表示高度,CO 表示颜色。使用真彩色指定颜色,真彩色使用三个数字(即三元组)表示所有可能的颜色。使用真彩色时,如果 Zm×n,则 COm×n×3。数组的第一页指示每种颜色的红色分量;第二页指示绿色分量;第三页指示蓝色分量。

1
2
3
4
5
[X,Y,Z] = peaks(25);
CO(:,:,1) = zeros(25); % red
CO(:,:,2) = ones(25).*linspace(0.5,0.6,25); % green
CO(:,:,3) = ones(25).*linspace(0,1,25); % blue
surf(X,Y,Z,CO)
img

修改曲面图的外观

通过指定以 0.5 为值的 FaceAlpha 名称-值对组,来创建半透明曲面。要允许进一步修改,请将曲面对象赋给变量 s

1
2
3
[X,Y] = meshgrid(-5:.5:5);
Z = Y.*sin(X) - X.*cos(Y);
s = surf(X,Y,Z,'FaceAlpha',0.5)
img
1
2
3
4
5
6
7
8
9
10
11
12
13
14
s = 
Surface with properties:

EdgeColor: [0 0 0]
LineStyle: '-'
FaceColor: 'flat'
FaceLighting: 'flat'
FaceAlpha: 0.5000
XData: [21x21 double]
YData: [21x21 double]
ZData: [21x21 double]
CData: [21x21 double]

Show all properties

在创建曲面对象之后可使用 s 访问并修改其属性。例如,通过设置 EdgeColor 属性来隐藏边。

1
s.EdgeColor = 'none';
img