干货 | 教你如何绘制简单又好看的热图

2021-05-19 17:43:24, 小迈 武汉迈维代谢生物科技股份有限公司



聚类热图作为目前最常见的一种可视化手段,热图因其丰富的色彩变化和生动饱满的信息表达被广泛应用于各种数据分析场景。因此,绘制热图成了相关从业者的一项必备技能。本文将用 R 语言和 Excel 尽可能简单的教你画一张好看的热图。


常规热图


01

第一步:安装和加载 R 包

install.packages("pheatmap")#安装R包

library(pheatmap)#绘制热图的包

library(RColorBrewer)#定义颜色的包


02

第二步:读取数据

03

第三步:画图

file=pheatmap(inDF[,-1])#因为此时第一列为类别,不是数字,所以此时将这一列去掉



此时你就得到了一张简单的热图,是不是觉得很丑?是的,我也这么觉得。下面我们简单优化一下。

上面的颜色是不是看着完全分不清差异?因为我们最大值和最小值相差太大,我们需要对数据进行归一化处理 ,这里我们按行对数据归一化, scale = "row" 。

上面是不是有一块灰色的和其他的格格不入?因为那是缺失值,没有合适的颜色给他,既然如此,我们手动给他指定一个颜色, na_col = "black"。当然您也可以在原始数据中为他填充一个值(缺失值的填充您可以 点击这里 了解更多)。

file=pheatmap(inDF[,-1],na_col = "black",scale = "row")

现在你就得到了一张比刚刚好看得多的热图



有人说这个颜色我看着不习惯,我想自定义一下。可以,简单。color=colorRampPalette(strsplit("green,white,red",split = ",")[[1]])(round(100)) ,自己定义虽然可以个性化但是去思考用什么颜色是一件很麻烦的事,所以我们直接使用别人定义好的。

color = colorRampPalette(rev(brewer.pal(n=11, name=''RdYlGn'')))(round(100)) 

还有人说我只想对横坐标进行聚类,不想对纵坐标进行聚类,可以。cluster_rows=T,cluster_cols=F。

file=pheatmap(inDF[,-1],color = colorRampPalette(rev(brewer.pal(n=11, name=''RdYlGn'')))(round(100)),cluster_rows=T,cluster_cols=F,na_col = "black",scale = "row")


此时有人说我的列名是有分组的,我想分颜色显示。ok,不仅可以分颜色显示还可以自定义颜色。顺便帮你把列也分个组吧。


此函数的参数较多,可以进行细节调整,完整参数请复制链接:

https://cran.r-project.org/web/packages/pheatmap/pheatmap.pdf至浏览器查看官方文档。

本文完整代码及注释如下:


交互式热图


交互式热图为 html 的网页文件,使用浏览器打开后将鼠标移动至小方块上可以显示对应的值和横纵坐标,且可以随意放大


迈维云平台


若您为迈维客户,您将拥有迈维云平台使用权限,里面有众多分析工具。复制链接:https://cloud.metware.cn/auth/login至浏览器,登录后即可使用。

找到聚类热图工具点击并按照右侧详细说明准备好一份归一化后的数据上传提交即可获得一份热图。


Excel 画热图


若您只是单纯的想用颜色表示一下每个值大小,如果仅仅是这样的话 Excel 就可以做到。


然后按照如图调整就可以得到一张用不同色块表示大小的图一张。


最后按照下图隐藏数字


附录:点击文末“阅读原文”即可获取文章原文以及完整版代码。


99%的代谢组学研究者都在阅读下文:

Microbiome | 首次发现抗生素调控肠道细菌与真菌的相互作用机制
Science首秀 | 再取新突破!颜宁/闫创业揭示胆固醇调节蛋白相互作用的分子机制
文章集锦 | “新冠”下的代谢组学及多组学研究
Cell最新文章——新冠逝者多组织蛋白质分子病理全景图
客户文章 | 氧化脂质&广泛靶向代谢组项目文章二连发!



咨询电话:027-62433042

微信:18062045271

邮箱:support@metware.cn

网址:www.metware.cn

我就知道你“在看”


  • 客服电话: 400-6699-117 转 1000
  • 京ICP备07018254号
  • 电信与信息服务业务经营许可证:京ICP证110310号
  • 京公网安备1101085018
  • 客服电话: 400-6699-117 转 1000
  • 京ICP备07018254号
  • 电信与信息服务业务经营许可证:京ICP证110310号
  • 京公网安备1101085018

Copyright ©2007-2026 ANTPEDIA, All Rights Reserved