热图就是使用颜色来表示数据相关性的图。能绘制热图的R包很多,今天我们来介绍pheatmap包,这个包的特点是简单易学,图片精美。
废话不多说,我们先导入数据和R包

library(pheatmap)
bc<-read.csv("E:/r/test/heatmap.csv",sep=',',header=TRUE)

R语言相关性pearson r语言相关性热图_聚类


这是一个西红柿的RNA测序数据,共有20行和20列,这个数据没有列名,我们给它加上列名,

dput(names(bc))
row.names(bc)<-dput(names(bc))

数据成如下格式后我们开始绘图

R语言相关性pearson r语言相关性热图_聚类_02


先来一个默认的简单的图

pheatmap(bc)

R语言相关性pearson r语言相关性热图_机器学习_03


有时候行列数据指标相差太大,我们需要对数据进行标准化,才好比较,scale参数可以对行列进行归一化,可选"none", “row”, “column”

pheatmap(bc, scale = "row")

R语言相关性pearson r语言相关性热图_R语言相关性pearson_04


参数clustering_method可以设定不同聚类方法,默认为"complete",其他的方法还有’ward’, ‘ward.D’, ‘ward.D2’, ‘single’, ‘average’, ‘mcquitty’, ‘median’ or ‘centroid’

pheatmap(bc,scale = "row", clustering_method = "average")

R语言相关性pearson r语言相关性热图_聚类_05


如果不想显示图例,可以

pheatmap(bc, legend = FALSE) #不画图例

R语言相关性pearson r语言相关性热图_机器学习_06


Pheatmap包还支持自己指定颜色

pheatmap(bc, color = colorRampPalette(c("navy", "white", "firebrick3"))(50))

R语言相关性pearson r语言相关性热图_bc_07


设置col、row方向的树高,就是上方和左边的聚类树的长度

pheatmap(bc,treeheight_row=100,treeheight_col=30)

R语言相关性pearson r语言相关性热图_R语言相关性pearson_08


给图片加上标题

pheatmap(bc,treeheight_row=100,treeheight_col=30,main = "Tomato Heatmap")

R语言相关性pearson r语言相关性热图_聚类_09


不显示一个聚类的方向,或者都不显示

pheatmap(bc,treeheight_row=120,treeheight_col=20,cluster_cols=FALSE)

R语言相关性pearson r语言相关性热图_bc_10

pheatmap(bc,treeheight_row=120,treeheight_col=40,cluster_row = FALSE)

R语言相关性pearson r语言相关性热图_机器学习_11


调整这个方框的大小,方框小了很多

pheatmap(bc,cellwidth = 15, cellheight = 12, fontsize =10)

R语言相关性pearson r语言相关性热图_R语言相关性pearson_12


显示方格中相关系数的数值,并设置字体颜色

pheatmap(bc, display_numbers = TRUE,number_color = "blue")

R语言相关性pearson r语言相关性热图_r语言_13


如您的数据中还有相关的亚组,可以进一步显示亚组的信息,我们的数据中没有亚组,我们来生成一个亚组的数据框

annotation_col = data.frame(group = factor(rep(c("gr1", "gr2"), 10)), Time = 1:20)
rownames(annotation_col) = dput(names(bc))

数据大概数这样的

R语言相关性pearson r语言相关性热图_r语言_14

pheatmap(bc, annotation_col = annotation_col)

R语言相关性pearson r语言相关性热图_r语言_15


这样亚组的信息就显示出来了,总的来说操作非常简单。