热图的基础绘制(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

📋📋📋本文目录如下:🎁🎁🎁

目录

💥1 概述

📚2 运行结果

🎉3 参考文献

🌈4 Matlab代码实现

💥1 概述

热图是一种很常见的图,其基本原则是用颜色代表数字,让数据呈现更直观、对比更明显。常用来表示不同样品组代表性基因的表达差异、不同样品组代表性化合物的含量差异、不同样品之间的两两相似性。实际上,任何一个表格数据都可以转换为热图展示。热图通过将数据矩阵中的各个值按一定规律映射为颜色展示,利用颜色变化来可视化比较数据。当应用于数值矩阵时,热图中每个单元格的颜色展示的是行变量和列变量交叉处的数据值的大小;若行为基因,列为样品,则是对应基因在对应样品的表达值;若行和列都为样品,展示的可能是对应的两个样品之间的相关性。数字映射到颜色可以分为线性映射和区间映射。线性映射是每个值都对应一个颜色,区间映射是把数值划分为不同的区间块,每个区间块的所有数字采用同样本相关性热图为对称热图,每个单元格代表一个相关性值,具体是哪种类型的相关性可从图例 (Legend)获取。一般结合层级聚类展示,样品相似度高的聚在一起。同时标记样品自身的分组、处理信息,查看样品聚类结果是否与生物分组吻合、差别在哪、各个生物重复的一致性怎么样、各个生物重复是与自己组的样品一致性高还是与其它组样品一致性高,这些可以反映处理的批次的影响和样品质量的好坏。一个颜色显示。两者没有优劣好坏之分,具体使用取决于展示意图。热图是对实验数据分布情况进行分析的直观可视化方法,可以用来进行实验数据的质量控制和差异数据的具像化展示,其基本原则是用颜色代表数字,让数据呈现更直观、对比更明显。还可以对数据和样本进行聚类,观测样品质量。热图有多种形式,但基本的元素是一致的。

1.热图:用颜色代表数字,让数据呈现更直观,对比更明显。

作用:(1)直观呈现多样本多个基因的全局表达量变化(2)呈现多样本多基因表达量的聚类关系。

2.聚类:本质上是利用多组值间两两的差异程度或者相似程度作为依据,对多组值进行层吸聚类,以最终得到样本间聚类的远近关系。

作用:探讨样本(或基因)的表达量水平如何分类,以及相关关系。

📚2 运行结果

 

 

 

 

 

 

 部分代码:

% 基础使用(Basic use)
if ~exist('gallery\','dir')
    mkdir('gallery\')
end
%% 绘制无负数的热图(Draw positive heat map)
figure()
Data=rand(15,15);
SHM1=SHeatmap(Data,'Format','sq');
SHM1=SHM1.draw();
% exportgraphics(gca,'gallery\Basic_positive.png')

%% 绘制有负数热图(Contains negative numbers)
figure()
Data=rand(15,15)-.5;
SHM2=SHeatmap(Data,'Format','sq');
SHM2=SHM2.draw();
% exportgraphics(gca,'gallery\Basic_negative.png')

%% 绘制不同大小热图(Draw heat maps of different sizes)
figure()
Data=rand(25,30);
SHM4=SHeatmap(Data,'Format','sq');
SHM4=SHM4.draw();
% exportgraphics(gca,'gallery\Basic_25_30.png')

%% 调整colorbar位置(Adjust the colorbar Location)
figure()
Data=rand(3,12);
SHM5=SHeatmap(Data,'Format','sq');
SHM5=SHM5.draw();
CB=colorbar;
CB.Location='southoutside';
% exportgraphics(gca,'gallery\Basic_colorbar_location.png')

%% 绘制有NaN热图(Draw heat map with NaN)
figure()
Data=rand(12,12)-.5;
Data([4,5,13])=nan;
SHM6=SHeatmap(Data,'Format','sq');
SHM6=SHM6.draw();
% exportgraphics(gca,'gallery\Basic_with_NaN.png')

%% 绘制有文本热图(Draw heat map with texts)
figure()
Data=rand(12,12)-.5;
Data([4,5,13])=nan;
SHM7=SHeatmap(Data,'Format','sq');
SHM7=SHM7.draw();
SHM7.setText();
% exportgraphics(gca,'gallery\Basic_with_text.png')

%% 绘制带标签热图(Draw heat map with labels)
figure()
Data=rand(12,12);
SHM8=SHeatmap(Data,'Format','sq');
SHM8=SHM8.draw(); 
ax=gca;
ax.XTickLabel={'X-1','X-2','X-3','X-4','X-5','X-6','X-7','X-8','X-9','X-10','X-11','X-12'};
ax.YTickLabel={'Y-1','Y-2','Y-3','Y-4','Y-5','Y-6','Y-7','Y-8','Y-9','Y-10','Y-11','Y-12'};
ax.FontSize=14;
% exportgraphics(gca,'gallery\Basic_with_labels.png')

🎉3 参考文献

部分理论来源于网络,如有侵权请联系删除。

[1]姚燚垚.2021年该被关注的10张热图[J].摄影之友,2022(01):24-29.

🌈4 Matlab代码实现

Matlab中的相关性分析热图可以通过绘制关系数矩阵来展示重点研究对象之间的差异情况。相关系数矩阵包含了各个变量之间的相关性指标,可以通过热图来直观地显示这些相关性。在Matlab中,你可以通过以下步骤来创建相关性分析热图: 1. 准备数据:首先需要准备相关性分析所需的数据。可以使用随机生成的数据或者导入自己的数据。例如,使用randn函数随机生成一个数据矩阵X,然后计算相关系数矩阵Data。同时,给出各个变量的名称。 2. 创建坐标区域和图窗:创建一个图窗和坐标区域,设置图窗的大小和位置,以及坐标区域的属性。 3. 热图绘制:使用嵌套循环遍历相关系数矩阵Data,并使用fill函数在坐标区域中绘制矩形图形,矩形的颜色根据相关系数值的大小而变化。可以使用sqX和sqY定义矩形的四个顶点的坐标。 4. 调整坐标轴和图像:设置坐标轴的属性,比如隐藏坐标轴标签和刻度线。使用axis函数调整坐标轴范围,使热图填满整个坐标区域。 以下是一个Matlab相关性分析热图的示例代码: ```matlab % 准备数据 X = randn(20, 20); Data = corr(X); % 变量名列表 NameList = compose('Sl-%d', 1:20); % 创建图窗和坐标区域 treeFig = figure('Position', [100, 300, 1000, 600]); ax = axes(treeFig); ax.NextPlot = 'add'; ax.DataAspectRatio = [1, 1, 1]; ax.XColor = 'none'; ax.YColor = 'none'; % 热图绘制 sqX = [-1, 0, 1, 0]; sqY = [0, 1, 0, -1]; for i = 1:size(Data, 1) for j = i:size(Data, 1) fill(ax, sqX + (i-1), sqY - (j-1), Data(i, j), 'EdgeColor', 'none'); end end % 调整坐标轴和图像 axis(ax, 'tight'); ``` 这样,就可以在Matlab中创建一个相关性分析热图,并展示重点研究对象之间的相关性差异情况。<span class="em">1</span><span class="em">2</span><span class="em">3</span><span class="em">4</span>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值