matlab中countourf如何设置颜色?

2025-04-05 09:53:45
推荐回答(2个)
回答1:

%---------------------------以下构造蓝色~红色的colormap
n=[1 42 127 211 252];        
J = zeros(252,3);
%-----------------------------------------------R
J(n(2):n(3),1) =linspace(0,1,n(3)-n(2)+1);
J(n(3):n(4),1) =1;
J(n(4):n(5),1) =linspace(1,0.5,n(5)-n(4)+1);
%-----------------------------------------------G
J(n(2):n(3),2) =linspace(0,1,n(3)-n(2)+1);
J(n(3):n(4),2) =linspace(1,0,n(4)-n(3)+1);
%-----------------------------------------------B
J(n(1):n(2),3) =linspace(0.5,1,n(2)-n(1)+1);
J(n(2):n(3),3) =1;
J(n(3):n(4),3) =linspace(1,0,n(4)-n(3)+1);
%----------------------------------------------------------
rz=get(gca,'clim'); %获得当前数值范围
rz=max(abs(rz));    %正负范围绝对值最大值
set(gca,'clim',[-rz rz]); %设置对称范围
colormap(J);%使用J作为colormap


这上面这些代码放在你原来画图的代码之后

前面生成J矩阵就是红蓝颜色的colormap


最后四句是改用新的J作为colormap

因为要0点刚好在中间,所以要设置颜色映射范围是正负对称的


以下是用这个colormap画出的图的例子

回答2:

colormap自己编数组