matlab默认提供了几个基础的colormap,比如常见的jet和parula
matlab里调用colormap的命令是
colormap(jet)
jet到底代表什么呢。
可以看到其表示n*3的矩阵,数字介于0-1之间,分别代表红绿蓝。
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'));
效果