【顶刊论文复现】Matlab复现第1期-热图

从这篇文章开始自己会慢慢尝试一些SCI论文中高颜值的图形复现,之后还会有Matlab绘图技巧的专题,这篇文章属于论文复现系列专题,希望对大家有帮助,下面我们就正式开始学习吧!

SCI原图:

复现效果: 

从图上可以看出,复现出了基本元素,但是颜色上仍然有完善空间,其他主要的文字与标题元素基本上达到了复现效果,这篇文章的热图绘制方法和之前有很大的不同,Matlab自带的热图函数heatmap无法修改很多坐标区域的元素,该文章主要是通过绘制三维柱状图的方式进行二维投影,下面将介绍完整的复现流程。

复现三步走

  1. 取色

    遇到喜欢的SCI论文取色在要复现的图形上面提取,取色步骤同前几篇绘图教程类似。

  2. 数据准备

    数据主要是二维相关系数矩阵、和之前热图教程中的数据形式相似。

  3. 函数使用

    这篇文章函数主要用到的是三维柱状图函数bar3。

👉  1. 取色 

 

此次取色将直接从需要复现的原图进行取色,同样在PPT中进行颜色的提取,颜色提取结果如下:

 接着对3种颜色进行线性插值、生成RGB值,实现一个颜色柱的绘制、从而得到一个完整的色系。生成后的色系图如下:

如上图所示、由3种基础色——完整的色彩柱就生成啦,本文中小编将其保存为colormap2.mat文件用于matlab读取。 

👉  2. 数据准备

​数据是南同学用随机数函数生成的二维系数矩阵,大家这里数据根据实际情况进行修改即可,如果大家的数据为excel,则通过xlsread函数进行读取,如果是mat文件,则通过load函数加载。数据准备代码如下:

%% 生成0-1随机系数矩阵
clc;
clear;
close all;
%X为0-1矩阵 
X = rand(8);

 👉  3. 函数使用

绘制三维散点图主要函数为bar3,参数主要为数据矩阵、柱状图宽度,绘图代码如下:

%% 绘图部分
load colormap2;
b = bar3(X,1);
colormap(mycolor);
view(0,90);
c = colorbar;
set(gcf,'color',[1 1 1]);
hold on;
plot3([0.5 8.5 ],[0.5 0.5],[0 0],'k','Linewidth',3);
hold on;

接下来是完善坐标区与各个标题信息。

%% 调整坐标区参数
Xlabel_name = {'NOTCH1','NOTCH2','NOTCH3','NOTCH4','DLL1','DLL4','JAG1','JAG2'};
Ylabel_name = {'SMC','EC-ven','EC-art','PC','EC-cap','Mesen','EC','EC-In'};
set(gca,'ygrid','on','color',[250 227 225]/255,'Gridalpha',1);
set(gca,'xgrid','on','color',[250 227 225]/255,'Gridalpha',0.4);
set(gca,'zgrid','off');
set(gca,'Box','off');
set(gca,'TickDir','out','Ticklength',[0.01,0.01]);
set(gca,'Linewidth',3);
set(gca,'Xticklabel',Xlabel_name,'XTickLabelRotation',90,'fontsize',17);
set(gca,'Yticklabel',Ylabel_name,'YTickLabelRotation',0,'fontsize',17);
title('cell-states','Fontsize',25,'position',[-2,4.45],'Rotation',90);
%% 设置colorbar的刻度与标签显示参数
caxis([0,1]);
set(c,'tickdir','out');
set(c,'Ytick',0.0:0.2:1.2);
set(c,'YtickLabel',{'0.0','0.2','0.4','0.6','0.8','1.0'});
set(c,'Linewidth',1.5);
set(c,'FontSize',20);
set(c,'Box','on');

 最后解答大家的疑惑就是关于使用bar3画热图的目的,主要是通过三维绘制柱状图再结合view函数二维投影,这样间接的方式进行绘制,为了方便大家阅读,中间过程图如下:

 这样进行二维投影就可以生成我们最终的热图啦!

完整复现代码与色系生成代码“获取方式”:

完整复现资料链接

 

  • 1
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值