利用R语言中pheatmap绘制热图

1.设置工作目录和安装和加载所需的R包

利用R语言中pheatmap绘制热图_第1张图片

 需要安装vegan包,利用命令install.packages("vegan")利用R语言中pheatmap绘制热图_第2张图片

 如图显示,表明安装成功并加载

利用R语言中pheatmap绘制热图_第3张图片

 2.导入数据

利用read.table()函数来导入原始数据

 header=T表示将第一行设置为列名,row.names=1表示将第1列设置为行名

下图,数据读取成功

 

 然后将读取的数据存储到一个新的变量data中,方便后期处理

data <- read.table("ruf_trans.txt",header=T,sep="\t",row.names=1)

3.绘图

利用pheatmap(data)可以直接出图,但是比较难看,需要调整相关参数

利用R语言中pheatmap绘制热图_第4张图片

 3.1首先对原始数据进行标准化

这里自己选择对数据的进行 Z-scores 标准化和中性化处理

#data.1 <- as.data.frame(scale(data))#第二种方法,但是这个默认是对列进行处理

利用R语言中pheatmap绘制热图_第5张图片

 利用apply()函数查看data.1的标准差

 然后对标准化之后的data.1进行绘图,看看效果

pheatmap(data.1)

利用R语言中pheatmap绘制热图_第6张图片

3.2绘图美化

3.2.1对热图聚类的方式进行修改

clustering_method参数来设定不同聚类方法

# 使用clustering_method参数来设定不同聚类方法,默认为"complete",
#可以设定为'ward', 'ward.D', 'ward.D2', 'single', 'complete', 'average', 'mcquitty', 'median' or 'centroid'等
pheatmap(data.1, clustering_method = "mcquitty")

 利用R语言中pheatmap绘制热图_第7张图片

 3.2.2 cluster_row = FALSE参数设定不对行进行聚类;cluster_cols = FALSE参数设定不对列进行聚类

pheatmap(data.1,
         cluster_row = FALSE,cluster_cols = FALSE) 

利用R语言中pheatmap绘制热图_第8张图片

 自己需要将其cluster_col=FALSE,不对列进行聚类

clustering_distance_rows行聚类距离度量

# 行列聚类距离度量
# clustering_distance_rows = "correlation"参数设定行聚类距离方法为Pearson corralation,默认为欧氏距离"euclidean"
#clustering_distance_cols 表示列距离度量的方法
pheatmap(data.1,clustering_distance_rows = "correlation",
      clustering_distance_cols= "correlation" )

 

3.2.3 treeheight_row 设置行的聚类树高,treeheight_col 设置列的聚类树高

# 可以选择一个合适的聚类高度
pheatmap(data.1,
         treeheight_row=100,treeheight_col=50) 

 3.2.4 设置热图的颜色

color参数来修改颜色,这里使用赋值渐变颜色调色板colorRampPalette

# 选择“紫,白,红”渐变,分为50个等级,可以选择自己喜欢的颜色,但是需要美感
pheatmap(data.1, color = colorRampPalette(c("navy", "white", "firebrick3"))(50))

 利用R语言中pheatmap绘制热图_第9张图片

 3.2.5 热图单元格设置

它默认是有单元格的,所以我们可以修改单元格的边框颜色或者将其去掉

border_color参数设定热图格子的边框色

将边框设置为黑色 

pheatmap(data.1, border_color = "black")

 border=FALSE参数去掉边框线

 3.2.6 设置单元格高度和宽度

cellheight 修改每个单元格的高度;cellwidth 修改每个单元格的宽度

# 将单元格的高度和宽度都设置为20
pheatmap(data.1,cellwidth = 20, cellheight = 20)

 

  • display_numbers = TRUE设定每个热图格子中显示相应的数值;
  • fontsize 修改热图中字体大小10
  • number_color 设置显示内容的颜色black
  • number_format 修改数值的格式,常用的有 "%.2f"(保留小数点后两位) "%.1e"(科学计数法显示,保留小数点后一位)
# 数值大于1.5的用*表示
pheatmap(data.1, display_numbers = matrix(ifelse(data.1 > 1.5, "*"," "), nrow(data.1)))

 3.2.7 图例的设置

# 设定图例显示范围,添加图例标签
pheatmap(data.1, legend_breaks = c(-2:2), 
    legend_labels = c("-1.0","0.0","1.0","2.0","3.0"))  
# legend = FALSE 去掉图例
pheatmap(data.1,legend = FALSE)

3.2.8行名和列名的设置

show_rownames和show_colnames参数设定是否显示行名和列名 

去除行名

pheatmap(data.1,show.rownames=FALSE)

利用angle_col参数去设置列标签的角度,可以选择0,45,270,315

最终,使用了下面一系列参数进行绘图美化

 利用R语言中pheatmap绘制热图_第10张图片

 最后,大家如果需要更详细是参数设置,可以参考使用R语言绘制热图:R包pheatmap的全参数详细介绍 - 简书

你可能感兴趣的:(R,r语言)