R数据可视化5:热图Heatmap
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了R数据可视化5:热图Heatmap相关的知识,希望对你有一定的参考价值。
参考技术A热图是一个以颜色变化来显示数据的矩阵。Toussaint Loua在1873年就曾使用过热图来绘制对巴黎各区的社会学统计。
生物学中热图经常用于展示多个基因在不同样本中的表达水平。 然后可以通过聚类等方式查看不同组(如疾病组和对照组)特有的pattern。
热图还可以用于 展示其他物质的丰度比如微生物的相对丰度、代谢组不同物质的含量等等。当然,另一个热图的重要用处就是展现不同指标、不同样本等之间的相关性 。
1)需要什么格式的数据
有很多的软件都可以做heatmap。我们要介绍的当然是R,R默认中提供了heatmap函数。当然,R中也有很多具有heatmap功能的包,比如ggplot2,gplots。
今天我们介绍含有heatmap.2功能的gplots包。
heatmap.2函数和我们之前要求的数据类型不太一样,这个函数输入数据要求是个矩阵(matrix)。
在R Studio中我们可以清楚的看到x和y的区别(虽然如果点开你也许会觉得x与y难道不是一模一样吗),x的type是dataframe的格式,而y是matrix也就是矩阵格式。这两种数据类型有什么差别呢?matrix中的值只能是一个格式,比如都是字符型。而dataframe可以同时支持不同的类型比如数值型和字符型。
2)如何做图
本节用一个不是那么生物的数据集来展示一下如何做热图。
如果直接使用默认的heatmap.2功能我们可以看到:
和平时看到的heatmap有些不一样,中间的这些蓝色的线我们称作“trace”:虚线表示这一列平均值,实线表示与平均值的偏离程度。默认是按照列计算平均等,也可以改为行。
但是我们这里的数据是做相关性,所以这些线的意义就不是那么大。
图例中也类似,展示了不同颜色对应的值大小,而蓝色的实线是根据数据分布做的密度曲线,虚线是平均值。
黑色的线之前我们已经提到过是对数据进行了聚类。
然后我们对图进行一些修改,红色太扎眼换个颜色,把一些不需要的功能去掉。比如聚类比如这些蓝色的线。
当然也可以按照相同顺序把相关性系数换成pvalue。颜色也可以根据情况进行修改。其他的也可以进一步调整。
总之,要记住不论做什么图最最重要的是如何通过这张图说明突出你想要传达的内容,你想要告诉读者什么结论,那么就是你这张图所需要展示的, 千万不要一味追求图形的好看或者复杂而忘记了你做图的目的,不论任何形式的图都只是数据的可视化,而可视化是为了增强数据的可读性。
借用老板常说的一句话,做生信的,要玩方法不要被方法玩。
另外,最近发现一篇基于pheatmap的热图文章,写的很详尽,推荐给大家:
使用pheatmap包绘制热图
案例演示 R语言绘制热图代码
参考技术A 本文是个人笔记,请谨慎付费[星球用户可免费看]。
我们在分析了差异表达数据之后,经常要进行热图的可视化展示。
热图(Heat map) 是一个以 颜色 变化来显示数据的 矩阵 。虽然“热图”是一个新兴的词汇,但是用明暗的矩阵来标示元素的方法已经有超过一世纪的历史了。
热图源自于展示数据的平面图像,较大的数字以小的深灰色、黑色方格呈现,而较小的数字则以较亮的方格标示。如Toussaint Loua在1873年就曾使用这样的手法来绘制对 巴黎 各区的社会学统计。 [1] 彼得·斯伊斯在1957年时进行 群集分析 时也透过置换矩阵的行和列的方法将更相似的值标示在一起。雅克·贝尔坦也曾用过类似的方法标示出 累积量表 的资料。而将 阶层式分群法 加入到矩阵中的概念则是由罗伯特·F·林于1973年创造,他利用多次印刷堆叠出的字符来表示不同程度的灰色,将每个字符大小则视为一像素。利兰·威尔金森则是于1994年开发出了第一个能生成高分辨率的矩阵的计算机程序—SYSTAT。
软件设计师科尔马克·金尼则在1991年时注册了热图这个商标用以形容一种描绘金融市场信息的平面图形, [2] 但是取得了金尼发明的公司在2003年时不小心使得这个商标失效了 [3]
以上是关于R数据可视化5:热图Heatmap的主要内容,如果未能解决你的问题,请参考以下文章
R语言可视化分别使用lattice包和ggplot2包可视化热图(heatmap)并绘制热力图对应的系统树图(dendrogram)实战