当前位置:   article > 正文

Matlab自制Colorbar(一)_matlab colorbar

matlab colorbar

目录

前言

一、寻找一张好看的配色图

二、保存待制作的Colorbar

三、利用代码读取并制作ColorMap

四、读入ColorMap画图

前言

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

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


一、寻找一张好看的配色图

        比如下面这张两张图:

335fc9717cf446ae8ef0fea502f32ae1.png

        这是我去年发在Geophysics期刊的一篇文章,左边图是我用Matlab直接画的,参数为默认,Colormap用的jet :

imagesc(x,y,data);colormap(jet)

        右边的图是正式发表之后期刊的配色,感觉看上去高级了不少。那我下次能不能直接画成这样呢?这就需要去扒它的Colorbar,根据它的配色生成一个ColorMap,下次再用。

        如果在平时看文章的时候看到一些好的配色图,也可以把它的Colorbar截下来,根据我下面的操作制作同款ColorMap。 

二、保存待制作的Colorbar

将自己喜欢的Colorbar截图保存到本地(直接截图保存即可)。 

05fb7211264a4976a92fed13b7bdb413.png


 三、利用代码读取并制作ColorMap

 在Matlab中运行下面的代码,并将刚才截图保存的Colorbar的图片读入,即可生成自制的ColorMap

  1. clc;
  2. clear;
  3. %根据一张颜色条的截图读取颜色值来制作自己的颜色条
  4. %选择图片文件
  5. [filename, pathname] = uigetfile({'*.jpg;*.png;*.tif;*.tiff'}, '读取图片文件');
  6. if isequal(filename,0)%判断是否选择
  7. msgbox('没有选择任何图片');
  8. else
  9. pathfile=fullfile(pathname, filename);%获得图片路径
  10. img=imread(pathfile); %将图片读入矩阵
  11. end
  12. [a,b,c]=size(img);
  13. if a>b %当颜色条竖着时
  14. color=img(:,round(b/2),:);%得到中间一条的颜色信息
  15. colorfinal=reshape(color,a,3);% 最后得到中间一条每个点的RGB
  16. colorfinal=double(colorfinal);
  17. colorfinal=colorfinal./255; %需要转化成双精度,0-1之间的数值
  18. %colorfinal=flipud(colorfinal); %上下翻转
  19. colormap(colorfinal); %查看制作好的颜色条
  20. %colorbar;
  21. ColorMap_me=colorfinal;
  22. else %当颜色条横着时
  23. color=img(round(a/2),:,:); % 得到中间一条的颜色信息
  24. colorfinal=reshape(color,b,3); % 最后得到中间一条每个点的RGB
  25. colorfinal=double(colorfinal);
  26. colorfinal=colorfinal./255; % 需要转化成双精度,0-1之间的数值
  27. %colorfinal=flipud(colorfinal); %上下翻转
  28. colormap(colorfinal) ; %查看制作好的颜色条
  29. %colorbar;
  30. ColorMap_me=colorfinal;
  31. end
  32. %保存制作好的颜色条
  33. save ColorMap_me ColorMap_me
  34. %生成随机相关矩阵
  35. correlation_matrix=corr(rand(10,10));
  36. %应用matlab自带颜色条画图测试
  37. figure;
  38. imagesc(correlation_matrix);
  39. colorbar;
  40. title('应用matlab自带颜色条进行显示','FontSize',16,'FontWeight','bold' );
  41. %应用自制的颜色条进行显示
  42. figure;
  43. colormap(ColorMap_me)
  44. imagesc(correlation_matrix);
  45. colorbar;
  46. title('应用自制的颜色条进行显示','FontSize',16,'FontWeight','bold' )

运行结果如下所示: 

98b06c5f17a240308cea722b76052c02.png

至此,根据别人文章里的Colorbar截图制作自己的Colorbar就成功了! 

 

四、读入ColorMap画图

 上一步的代码中会保存ColorMap_me.mat文件,下次使用时直接读入使用:

  1. load('ColorMap_me.mat', 'ColorMap_me')
  2. figure;
  3. colormap(ColorMap_me)
  4. imagesc(correlation_matrix)

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/593736
推荐阅读
相关标签
  

闽ICP备14008679号