【MATLAB绘图进阶第3弹】Matlab绘制热图系列

热图的主要作用是直观展示重点研究对象的差异情况,多用于经济学与工学差异性分析之中,我们常见的多变量相关系数矩阵与混淆矩阵就可以通过热图增加图示的美感,南同学将和大家一起实现一张多样化的热图绘制!

 成图效果展示

 绘图三步走 

  1. 配色

    重要的事情说三遍:配色、配色、配色!!!好的配色等于成功了一半,第一步也是最重要的一步-提取SCI论文中喜欢的颜色。

  2. 数据准备

    热图数据主要来自于大家计算得到的相关系数矩阵,南同学这次的数据也是自己拟定的,大家这里可以随机应变。

  3. 函数使用

    此图主要用到的函数是热图函数—Heatmap。

   1. 配色

 首先找到类似的图片在PPT中取色,取色步骤同第一篇柱状图文章,需要注意的是Matlab中支持的RGB值为0-1之间,在取得RGB值后除以255即可。取色图片如下:

将此图片复制到PPT中,插入形状—形状填充—取色器—取色—记录RGB值,将RGB值复制到Matlab中,最终保存为矩阵,这样颜色就提取好啦。 

 在Matlab中保存为数据矩阵:

%% 配色数据保存
mycolor = [0.474509803921569,0.650980392156863,0.807843137254902;...
 0.682352941176471,0.823529411764706,0.898039215686275;...
 0.941176470588235,0.972549019607843,0.862745098039216;...
 0.992156862745098,0.968627450980392,0.705882352941177;...
 1,0.901960784313726,0.603921568627451];

 2. 数据准备

 数据是小编自己运用rand函数随机生成的0-1之间的矩阵,大家可以结合自己的数据进行替换或者更改。代码如下:

%% 随机生成相关性系数矩阵
clc;
clear;
close all;
X = rand(13); %X为0-1矩阵 
X = round(X,2); %获取矩阵的列数
B = ones(1,size(X,1));%全是1的向量
% 替换X矩阵对角元素,使其均为1
X(logical(eye(size(X))))=B;

3. 函数使用

 使用heatmap:用来绘制热图;heatmap(xvalues, yvalues, cdata);参数依次为 X轴变量名、Y轴变量名与数据矩阵;colormap:产生颜色柱并且赋色。

%% 开始绘制热图
% 命名所有变量名字,这里大家可以替换成自己需要的变量名
label_name = {'N1','N2','N3','N4','N5','N6','N7','N8','N9','N10','N11','N12','N13'};
xlabel_name = label_name;
ylabel_name = label_name;
% 热图函数为heatmap;开始绘制
hot_figure = heatmap(xlabel_name,ylabel_name,X,'FontSize',10);
hot_figure.GridVisible = 'off';
% 设置坐标区名字与图的大标题
hot_figure.Title = 'Heated';
hot_figure.XLabel = 'xlabel';
hot_figure.YLabel = 'ylabel';
%% 对热图上色—colormap函数
colormap(gca,mycolor);

这样最终一张论文热图就完成啦!

代码源文件与资料获取方式:

完整资料链接

  • 19
    点赞
  • 251
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值