R语言 用Pheatmap包 简单画相关系数热图

包的安装

install.packages(pheatmap)

包的导入

#导入pheatmap包
library(pheatmap)
#

数据整理

做相关系数矩阵的时候,经常会碰见有一列的数值唯一,是常数,没有办法进行相关系数矩阵的运算。
解决办法是采用jitter包,在数值矩阵的每一行加上随机小扰动,这些扰动不会过多影响相关系数矩阵。

#导入包
library(base)
x = jitter(rep(0,length(数值矩阵)))
for(i in 1:dim(数值矩阵)[1]){
  数值矩阵[i,] = 数值矩阵[i,] + x[i]
}

常规画热图,采用默认参数

#例如做相关系数矩阵热图
pheatmap(相关系数矩阵)

结果输出如下


图1

特殊需求:限定相关系数的范围

如果对相关系数的范围有要求,比如固定的范围,需要添加其他的参数

#color是分配色块,"RdBu"代表从红色到蓝色变化,这里分配了36个色块
#breaks代表颜色的范围,从-0.8到1,以0.05为间隔,一共36个间隔, 对应36个色块
# 这里必须和上面color的36个色块对应起来
pheatmap(相关系数矩阵,breaks=seq(-0.8,1,0.05),color=colorRampPalette(rev(brewer.pal(10, "RdBu")))(36))

结果为


图2

这个一般用来比较多个相关系数热图之间的区别。

图像的高清保存

美丽的热图生成了,要高清保存到电脑,需要用到以下语法

jpeg('文件输出路径',width = 400, height = 350)
pheatmap(相关系数矩阵,breaks=seq(-0.8,1,0.05),color=colorRampPalette(rev(brewer.pal(10, "RdBu")))(36))
dev.off()

图像高清保存的秘诀就是设置合适的宽度高度,经过我的实验,宽度为400,高度为350的输出效果较好,小伙伴们如果有更好的比例也可以评论一下或是私信我。

整齐排列图片

有时候生成了一系列的图片,如何整齐排列这些图片?

我自己用的是illustrator,比较方便的一点是,它可以在你的原始图片有改动后自动更新,省去手动修改的麻烦。

看在我辛苦码字的份上,小伙伴们觉得有用的话,点个赞吧,我会更有动力分享我的代码思路,【比心】❤️。

你可能感兴趣的:(R语言 用Pheatmap包 简单画相关系数热图)