包的安装
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(相关系数矩阵)
结果输出如下
特殊需求:限定相关系数的范围
如果对相关系数的范围有要求,比如固定的范围,需要添加其他的参数
#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))
结果为
这个一般用来比较多个相关系数热图之间的区别。
图像的高清保存
美丽的热图生成了,要高清保存到电脑,需要用到以下语法
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,比较方便的一点是,它可以在你的原始图片有改动后自动更新,省去手动修改的麻烦。
看在我辛苦码字的份上,小伙伴们觉得有用的话,点个赞吧,我会更有动力分享我的代码思路,【比心】❤️。