我想要一个像下面这样的表面图,但有一个适当的颜色条。
这是我的代码:
[X,Y,Z] = peaks(30);
[maxval dummy] = max(Z(:));
[minval dummy] = min(Z(:));
crange = 1.5;
% red, yellow, green
cmap = [1 0 0; 1 1 0; 0 1 0];
colormap(cmap);
colors = zeros(size(Z));
colors(Z <= -crange) = 1; % red (1)
colors(Z > -crange & Z < crange) = 2; % yellow (2)
colors(Z >= crange) = 3; % green (3)
surf(X,Y,Z, colors);
axis([-3 3 -3 3 -10 10]);
%cbh = colorbar('YGrid','on');
%caxis([minval-0.1 maxval+0.1]);
%set(cbh,'YTick',[minval -crange crange maxval]);
到目前为止,我没有运气添加颜色(绿色,黄色,红色)根据我的自定义范围对齐的颜色条(绿色 [8 ... 1.5],黄色 [1.5 ... -1.5],红色 [- 1.5 ... -6.4])。相反,当我取消注释最后三行时,会出现一个颜色呈线性对齐的颜色条,并且我的绘图中的颜色根据颜色条而不是我的自定义范围对齐。
现在,我想要的是颜色栏中的颜色与我的自定义刻度相匹配,并且情节看起来像第一张图片中的那样。