matlab中countourf如何设置颜色?
我想调整contourf图的颜色。大于零的部分取红色,小于零的部分取蓝色。数值越大,颜色越深;数值越小,颜色越浅。请问各位大神,如何才能做到呢?...
我想调整contourf图的颜色。大于零的部分取红色,小于零的部分取蓝色。数值越大,颜色越深;数值越小,颜色越浅。请问各位大神,如何才能做到呢?
展开
展开全部
%---------------------------以下构造蓝色~红色的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画出的图的例子
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询