如何更改 trisurf 图的颜色图以更好地区分正/负值

Bri*_*ian 1 matlab

我有一个高于和低于零的 trisurf 图。如何更改颜色图,以便我对颜色进行编码,使表面大于零的部分为蓝色,而低于零的部分为红色?

Amr*_*mro 5

您可以自己构建这样的颜色图。拿这个例子:

r = [1 0 0];       %# start
w = [.9 .9 .9];    %# middle
b = [0 0 1];       %# end

%# colormap of size 64-by-3, ranging from red -> white -> blue
c1 = zeros(32,3); c2 = zeros(32,3);
for i=1:3
    c1(:,i) = linspace(r(i), w(i), 32);
    c2(:,i) = linspace(w(i), b(i), 32);
end
c = [c1(1:end-1,:);c2];

surf(peaks), shading interp
caxis([-8 8]), colormap(c), colorbar
Run Code Online (Sandbox Code Playgroud)

替代文字