• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

数据可视化——Matlab平台读取颜色条图片制作出自己的颜色条 ...

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

数据可视化——Matlab平台读取颜色条图片制作出自己的颜色条

概述:基于matlab平台,读取一张已有的颜色条图片,依据该图片制作属于自己的颜色条,并将制作好的颜色条用于数据可视化。

绘制图形的颜色配色方案很重要,但又不易于实现。有时,我们通过阅读文献可以找到美观的配色方案,但怎么将这些配色方案用于自己的数据可视化呢?例如怎样把文献中配色较好的颜色条用于自己的数据可视化呢?下面例举出我的一种解决思路:

  1. 首先使用截图工具将文献中好看的颜色条截取出来保存为图片;
  2. 依据截取的颜色条图片进行简单的图片处理,制作成属于自己的颜色条;
  3. 将制作好的颜色条用于自己的数据可视化。

比如,通过阅读文献,觉得以下的图片中颜色条很适合于自己的数据显示。

图片来源于:Ji Hyun Ko, Phoebe G Spetsieris, David Eidelberg; Network Structure and Function in Parkinson’s Disease, Cerebral Cortex, Volume 28, Issue 12, 1 December 2018, Pages 4121–4135, https://doi.org/10.1093/cercor/bhx267

使用截图工具截取的颜色条如***意:仅截取颜色条部分,截取的大小没有关系,但要保证截取了整个颜色条),并将该图片进行保存,如文件名为1.png。


截取好的颜色条

使用以下代码制作属于自己的颜色条,并将该颜色条用于数据可视化:

clc;clear ;close all;

%根据一张颜色条的截图读取颜色值来制作自己的颜色条

[filename, pathname] = uigetfile({'*.jpg;*.png;*.tif;*.tiff'}, '读取图片文件'); %选择图片文件
if isequal(filename,0)   %判断是否选择
   msgbox('没有选择任何图片');
else
   pathfile=fullfile(pathname, filename);  %获得图片路径
   img=imread(pathfile);     %将图片读入矩阵

end

[a,b,c]=size(img);

if a>b  %当颜色条竖着时
        color=img(:,round(b/2),:);    %得到中间一条的颜色信息
        colorfinal=reshape(color,a,3);   % 最后得到中间一条每个点的RGB
        colorfinal=double(colorfinal);
        colorfinal=colorfinal./255;  %需要转化成双精度,0-1之间的数值
        colorfinal=flipud(colorfinal);%上下翻转
        colormap(colorfinal) ; %查看制作好的颜色条
        colorbar;
        ColorMap_me=colorfinal;
else  %当颜色条横着时
        color=img(round(a/2),:,:);    %  得到中间一条的颜色信息
        colorfinal=reshape(color,b,3);   %  最后得到中间一条每个点的RGB
        colorfinal=double(colorfinal);
        colorfinal=colorfinal./255; %  需要转化成双精度,0-1之间的数值
        colorfinal=flipud(colorfinal);%上下翻转
        colormap(colorfinal) ;  %查看制作好的颜色条
        colorbar;
        ColorMap_me=colorfinal;
end

save ColorMap_me ColorMap_me %保存制作好的颜色条

correlation_matrix=corr(rand(10,10)); %生成随机相关矩阵

figure;
imagesc(correlation_matrix);
colorbar;
title('基于matlab默认的颜色条进行显示','FontSize',16,'FontWeight','bold' )

figure;
colormap(ColorMap_me) %应用自己制作的颜色条进行显示
imagesc(correlation_matrix);
colorbar;
title('基于自己制作的颜色条进行显示','FontSize',16,'FontWeight','bold' )

运行该代码,会填出读取图片文件的提示框,将刚刚保存的截取的颜色条图片1.png选中并确定,可完成运行并保存制作好的颜色条。

制作颜色条其实就是将读取的颜色条图片的中线对应RGB值取出作为颜色条ColorMap_me的RGB通道的值。

结果如下所示,同时将matlab默认的颜色条与自己制作的颜色条进行对比显示:
基于matlab默认的颜色条进行显示结果如下:

基于自己制作的颜色条进行显示的结果如下:


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap