Matlab自制Colorbar(二)

目录

前言

一、查询RGB值

二、根据RGB生成Colormap

三、基于自制Colormap画图

四、生成黄白黑Colormap测试

1、查询RGB

 2、根据RGB生成Colormap

3、画图测试

总结


前言

        在我们的日常科研生活中,能够用一张让人眼前一亮的图给同行展示自己的成果是非常重要的。而且,往往越高端的期刊对作图的要求也越高。一张好看的配图首先就取决于它的配色。

        本文以Matlab作图为例来展示如何自定义一幅图的配色--自制Colorbar教程第二弹

        上一篇中我们讲解了如何利用别人已有的Colormap自制同款,在本篇中,我们来讲解如何用RGB值自定义Colormap的范围,这样我们就可以随心所欲定制属于自己的Colormap啦!

一、查询RGB值

        各种颜色的RGB对应值很容易查到,我们在这里以红白蓝为例:

        红色:255、0、0;白色:255,225,255;蓝色:0,0,255

二、根据RGB生成Colormap

        将RGB归一化,并运行如下代码生成Colormap:

mincolor    = [1 0 0]; % red
mediancolor = [1 1 1]; % white   
maxcolor    = [0 0 1]; % blue      

ColorMapSize = 50;
int1 = zeros(ColorMapSize,3); 
int2 = zeros(ColorMapSize,3);
for k=1:3
    int1(:,k) = linspace(mincolor(k), mediancolor(k), ColorMapSize);
    int2(:,k) = linspace(mediancolor(k), maxcolor(k), ColorMapSize);
end
meep = [int1(1:end-1,:); int2];

        其中红色代表的是最小值,蓝色代表是最大值,如果需要互换可以直接在代码中更改mincolor和maxcolor项。 

关键参数:ColorMapSize,用于控制颜色过渡的平滑程度,数字越大则颜色过渡越平滑。

三、基于自制Colormap画图

生成一个随机相关矩阵并用自制的Colormap画图测试

%生成随机相关矩阵
correlation_matrix=corr(rand(10,10)); 
%画图
colormap(meep); 
imagesc(correlation_matrix)
colorbar

画图如下:

efebea2c0de249bdb8e0cda78f0dd31c.jpeg

测试ColorSize=5时的情况:

9a473db23f5c4b278ced7ed66b41ff42.jpeg 

        此时的颜色过渡比较生硬,包含较少的颜色块。 

四、生成黄白黑Colormap测试

1、查询RGB

黄色:255、255、0;白色:55,225,255;黑色:0,0,0。

 2、根据RGB生成Colormap

mincolor    = [1 1 0]; % yellow
mediancolor = [1 1 1]; % white   
maxcolor    = [0 0 0]; % black     

ColorMapSize = 50;
int1 = zeros(ColorMapSize,3); 
int2 = zeros(ColorMapSize,3);
for k=1:3
    int1(:,k) = linspace(mincolor(k), mediancolor(k), ColorMapSize);
    int2(:,k) = linspace(mediancolor(k), maxcolor(k), ColorMapSize);
end
meep = [int1(1:end-1,:); int2];

3、画图测试

%生成随机相关矩阵
correlation_matrix=corr(rand(10,10)); 
%画图
colormap(meep); 
imagesc(correlation_matrix)
colorbar

452424ad4c25463ca23d9b9079a6d253.jpeg 

总结

        本文中讲到的这种直接根据RGB值来制作Colormap的方法更加通用,可以根据自己的想法与需求设定属于自己的Colormap。

 

  • 4
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小薛薛snow

如果对您有帮助,请多多鼓励

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

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

打赏作者

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

抵扣说明:

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

余额充值