一、自带的colormap
matlab默认提供了几个基础的colormap,比如常见的jet和parula
matlab里调用colormap的命令是
colormap(jet)
jet到底代表什么呢。
可以看到其表示n*3的矩阵,数字介于0-1之间,分别代表红绿蓝。
二、m_map的colormap
m_map工具箱提供了很多现成的colormap,如下
查看其调用的函数 m_colmap
本质和matlab自带的一样。
三、使用NCL的colormap
根据前面的介绍,我们可以diy自己想要的colormap,ncl提供了丰富的例子。
对于普通的科研绘图来讲,足够!
那么下一步获取 指定id对应的三维矩阵并输入matlab即可。
我diy了以下的函数,方便大家使用。
function color = ncl_colormap(colorname)
url = ['https://www.ncl.ucar.edu/Document/Graphics/ColorTables/Files/',colorname,'.rgb'];
sourcefile=urlread(url,'get','');
source = strtrim(sourcefile);
source = regexp(source, '\s+', 'split');
source(1:7) = [];
for i=1:(size(source,2))
color(i) = str2double(source{i});
end
integer = round(size(color,2) ./ 3); %这里是为了防止个数 不能把被3整除
color = color(1,1:integer * 3);
color = reshape(color,3,size(color,2) / 3);
color = color';
color = single(color) ./ 255;
end
使用方法
scatter(x,y,[],z,'.');% 散点绘制; 大小颜色样式
colormap(ncl_colormap_pzp('cmocean_deep'));
效果