我有一个使用patch的3D图,默认的色彩图是我使用R2014a时的喷射图,所以我使用
cMap=hsv(250);
colormap(cMap);
caxis([min(M(:)) max(M(:))]);
但是,当值增加时,颜色从深蓝色变为浅蓝色,然后变为深红色。对我来说这是不理想的,因为当值增加时,我希望颜色从浅色变为深色。因此,如何调整颜色图,使其随着值的增加从浅蓝色或白色变为深红色?谢谢你。
有很多不同的颜色图,您也可以创建自己的自定义颜色图。用于doc colormap
更详细地查看它们:
如果您使用的是HSV色图,并且只能看到蓝色到红色,那是因为您的色轴限制使得仅对色图的那一部分进行了采样。因此,如果您的数据范围从0.5到1.0,但您将色轴设置为,caxis([0.0 1.0])
则您只会在色图中看到一半的颜色。
为了获得如您所描述的颜色图,您可以使用这种方法指定最小和最大颜色,并创建一个从一种颜色过渡到另一种颜色的颜色图。请注意,您将必须根据绘图的限制适当设置色轴值(命令会surf
自动拉伸以包括所有颜色)。
% number of map indices
Nmap = 64;
% colormap from cyan to red
cMin1 = [0 1 1];
cMax1 = [1 0 0];
cMap1 = zeros(Nmap,3);
for i = 1:Nmap;
cMap1(i,:) = cMin1*(Nmap - i)/(Nmap - 1) + cMax1*(i - 1)/(Nmap - 1);
end
% colormap from white to red
cMin2 = [1 1 1];
cMax2 = [1 0 0];
cMap2 = zeros(Nmap,3);
for i = 1:Nmap;
cMap2(i,:) = cMin2*(Nmap - i)/(Nmap - 1) + cMax2*(i - 1)/(Nmap - 1);
end
% make up some data
Z = linspace(0,1,100)'*ones(1,100);
% plot with HSV colormap
figure
surf(Z,'edgealpha',0);
colormap('hsv');
% plot with cyan-to-red colormap
figure
surf(Z,'edgealpha',0);
colormap(cMap1);
% plot with white-to-red colormap
figure
surf(Z,'edgealpha',0);
colormap(cMap2);
哪个应该产生:
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句