自建水浒108将colorbar(持续更新)

MATLAB中的颜色吸星大法,有了它,可以吸取任何你喜欢的colorbar


imread函数

本例中提取的 test_pic.jpg 为:
在这里插入图片描述

i = imread('test_pic.jpg');      % test_pic是从任何文献网站中截取到的colorbar,注意只需截取colorbar颜色条就好,无需数值。
color = i(11, :, :);             % 本例中 i 为 45×279×3 的矩阵,因图为水平放置,故而45方向上的数值基本不变,因此取(任意数, :, :)
colorfinal = squeeze(color);     % 压缩尺寸只有1的方向
colormap(double(colorfinal)/255);    % 双精度化,转化到[0,1]
colorbar

出图如下:
在这里插入图片描述
然而,这样得到的colorbar似乎并不能自定义间隔,如均分为10段colormap(10),每段颜色相同,如下图:

在这里插入图片描述
需要将其做成与MATLAB内置一致的类型才可。操作如下:

(1) 像上面一样提取colorbar颜色,这一步的目的是为了能得到colorDefine这个矩阵变量,以便于制作内置形式的函数;
extColor = imread('test_pic.jpg');      % test_pic是从任何文献网站中截取到的colorbar,注意只需截取colorbar颜色条就好,无需数值。
[aa bb cc] = size(extColor);

if aa > bb
    colorVar = extColor(:, floor(median(bb)), :);
else
    colorVar = extColor(floor(median(aa)), :, :); % 修改之后,无论水平或者竖直放置,均可识别。
end

colorDefine = squeeze(colorVar);          % 压缩尺寸只有1的方向
colorDefine = double(colorDefine)/255;  % 双精度化,转化到[0,1]

% 以下两行用于检测生成的是否正确;
colormap(colorDefine);
colorbar
(2) 制作内置函数,生成一个自定义命名的函数文件(.m),并将其放在指定MATLAB安装的指定目录下;
function map = dayon(N)                        % 名字和文件名必须保持一致;
    if nargin<1 || isempty(N)
        N = size(get(gcf,'colormap'),1);
    else
        assert(isscalar(N)&&isreal(N),'First argument must be a real numeric scalar.')
    end
    
    C = colorDefine; % 只需修改这里。这里把上面计算出来的colorDefine数值粘贴进来就好。格式为N×3的矩阵;
    
    num = size(C,1);
    vec = linspace(0,num+1,N+2);
    map = interp1(1:num,C,vec(2:end-1),'linear','extrap'); %...插值
    map = max(0,min(1,map));
end

(3)m文件制作好之后,可以建立个自己的文件夹,如dayon, 将其放在matlab的toolbox下面目录,本例为

G:\Program Files\MATLAB\R2017a\toolbox

在这里插入图片描述
注意,如果使用MATLAB命令行,输入

colormap(dayon);
colorbard

没有反应,则需通过“设置路径”的方式添加

在这里插入图片描述
成功的显示为

在这里插入图片描述
参考网址
http://blog.sciencenet.cn/blog-3425629-1265751.html
阿昆的科研日常(感谢作者,大家可关注)
https://zhuanlan.zhihu.com/p/87540630
https://zhuanlan.zhihu.com/p/84632306
配色网址
https://medium.com/@dannysmith/finding-a-good-colour-palette-through-exploration-b90abde88a1c#.j7e0r5lit


自己收集的ShuihuColor(不定期更新)
在这里插入图片描述

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大雨海深

感谢您的支持和鼓励

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值