matlab曲面图的自定义颜色

matlab曲面图的自定义颜色,matlab,map,colors,command,contour,Matlab,Map,Colors,Command,Contour,我已经将一些地形数据加载到matlab中,并创建了这些数据的surf、surfl和等高线图,使用彩色地图对它们进行着色。地形数据范围为0至2500 m 我想画一张地图,把200米以下的地形涂成蓝色,500米以上的地形涂成红色,200米到500米之间的地形涂成绿色。有可能这样做吗?有人能给我一些关于这样做所需的命令的提示吗 非常感谢 hsurf=surf(...) set(hsurf,'FaceColor','interp') doc-surf了解更多信息。您可以使用colormap和surf的

我已经将一些地形数据加载到matlab中,并创建了这些数据的surf、surfl和等高线图,使用彩色地图对它们进行着色。地形数据范围为0至2500 m

我想画一张地图,把200米以下的地形涂成蓝色,500米以上的地形涂成红色,200米到500米之间的地形涂成绿色。有可能这样做吗?有人能给我一些关于这样做所需的命令的提示吗

非常感谢

hsurf=surf(...)
set(hsurf,'FaceColor','interp')

doc-surf
了解更多信息。

您可以使用
colormap
surf
的第四个输入

下面的情节

是由

[X,Y,Z] = peaks(1000);

%colormap
cmap = [0.6 0.2 0.4; 
        0.5 0.5 0.5; 
        0.1 0.9 0.9];  

Zcolor = zeros(size(Z));                   
threshold = 2;
Zcolor(Z <= -threshold)                 = 1;  % first row of cmap
Zcolor(Z > -threshold & Z < threshold)  = 2;  % second row of cmap
Zcolor(Z >= threshold)                  = 3;  % third row of cmap

figure('Color','w');
surf(X, Y, Z, Zcolor, 'EdgeColor', 'None');
colormap(cmap); 
light('Position', [0 -2 1])
[X,Y,Z]=峰值(1000);
%彩色地图
cmap=[0.6 0.2 0.4;
0.5 0.5 0.5; 
0.1 0.9 0.9];  
Zcolor=零(大小(Z));
阈值=2;
Z颜色(Z-阈值和Z<阈值)=2;%cmap的第二行
Zcolor(Z>=阈值)=3;%cmap的第三行
图(‘颜色’,‘w’);
surf(X,Y,Z,Zcolor,'EdgeColor','None');
彩色地图(cmap);
指示灯('位置',[0-21])

这并没有使绘图看起来有任何不同。您能告诉我如何使用此设置每个高度的颜色吗?谢谢您的回复!这很有帮助。但是,当我修改代码使其适用于我的数据时,Zcolor(Z MATLAB)会对该数据执行线性变换,以从当前颜色映射中获取颜色。通常,最低的Zcolor值将指定为颜色映射的最小值,最高的Zcolor值将指定为最大值。这两个值之间的所有值都将被缩放。