写在开头
工欲善其事,必先利其器。这期介绍的配色神器——Othercolor。还在为matlab单调的jet色调苦恼吗?还在默默计算rgb手动制作colormap吗?赶快对这些say no,投入Othercolor的怀抱吧
方法:Othercolor
软件:matlab
用途:给你的图片高大上的配色。
源脚本链接:http://nl.mathworks.com/matlabce ... ge/30564-othercolor (version 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及对应渐变。这时候不得不提以下黑科技。
具体过程如下:
% 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值。
-----------------
如果你喜欢这篇文章,不妨点个赞或者转发一下,让更多人分享到。
凡发布在心心水滴论坛资源分享及教程帖,所有权归作者所有,最终解释权归公众号所有。
领取专属 10元无门槛券
私享最新 技术干货