Data Visualization IV:othercolor

写在开头


工欲善其事,必先利其器。这期介绍的配色神器——Othercolor。还在为matlab单调的jet色调苦恼吗?还在默默计算rgb手动制作colormap吗?赶快对这些say no,投入Othercolor的怀抱吧 :)


方法:Othercolor

软件:matlab

用途:给你的图片高大上的配色。

源脚本链接:http://nl.mathworks.com/matlabce ... ge/30564-othercolorversion 1.7 (186 KB) by Joshua Atkins


如果你熟悉matlab中colormap的原理,那理解起来就很简单,othercolor其实就是非常多配色的3*N的矩阵,3列对应RGB,N对应颜色过渡的层数。让我们举个例子来看,如何调用这个功能。


% Step 1:赋值colormap

cus_map = othercolor('BuOr_12'); % BuOr_12是othercolor中根据个人喜好选取的一个配色


% Step 2:与画图函数结合执行(此处以脑电topo图为例)

save_dir = 'C:\Users\Administrator\Desktop\EEG\Analyses' % 你存放该脚本和附件std_chan_info.mat的路径

load(fullfile(save_dir,'std_chan_info.mat'),'std_chan_locs'); % 11个通道的位置文件,点击下载(文件名std_chan_info.mat


data = rand(11,1);

topoplot(data,std_chan_locs,...
           'electrodes','on','numcontour',0,'maplimits',[0 1],'colormap',cus_map);colorbar;
%典型的EEGLAB画地形图函数,不熟悉的同学可以help topoplot来看看。

效果如下:

除了BuOr_12,othercolor还有非常多的配色(接近300多种),大家都可以一个个尝试,挑选自己喜欢的高大上配色。



虽然以上配色已经基本满足大部分的需求,有些同学还有special诉求,他们看到某些大牛文章里的colorbar配色,十分羡慕,但是不知道他们的RGB及对应渐变。这时候不得不提以下黑科技

http://bbs.06climate.com/forum.php?mod=viewthread&tid=19108(转载自作者蒙牛)处获悉一种利用matlab获取文献中colorbar的方法,当阅读文献的时候看到别人文章中好看的colorbar,实在喜欢的话可以将其截图下来,保存成图片,然后在Matlab中读取,即可获得文献中的colorbar。

具体过程如下:
% Step 1:截图。首先是某文献中自己喜欢的图,选择喜欢的colorbar进行截图(只截取颜色条,不包括数值),保存为colorRead.jpg



% Step 2:读取。
imread('colorRead.jpg’);   % 得到了一个23*189*3的矩阵,其中23是宽(高),189是长,3是RGB的维数
color=ans(11,:,:);    %  得到中间一条的颜色信息
colorfinal=reshape(color,189,3);   %  最后得到中间一条每个点的RGB
colormap(double(colorfinal)/255) ;  %  需要转化成双精度,0-1之间的数值
colorbar;
colorsave=double(colorfinal)/255;
save colorsave colorsave -ASCII; %将colorbar保存以后使用

效果如下(是不是十分接近原文效果):


有同学提出,很多文献中的colorbar往往不是渐变色的,可能是分段的,那么可以通过将原来的colorbar进行手动分段截取,多次使用该脚本获取相应rgb值。

-----------------
如果你喜欢这篇文章,不妨点个赞或者转发一下,让更多人分享到。