介绍一个控制热图颜色范围并规定指定值颜色的小技巧。 R包:#install.packages("pheatmap") 调用R包:library(pheatmap) 使用的是R软件的pheatmap包,先生成随机数据: set.seed(100) data1<-c(runif(20,min=-2,max=2),rnorm(380,2,2)) data1<-matrix(sample(data1,400,replace = F),nrow=20) data1如下: 查看数据范围: range(data1) 使用上面的矩阵做热图,要求低值为蓝色,高值为红色,中间值为白色: library(pheatmap) pheatmap(data1, scale = "none", color = colorRampPalette(colors = c("blue","white","red"))(100) ) 结果如下: 数据data1的数值范围是-4到8.6,所以上图的色条范围也是-4到8.6。但由于0的位置比较特殊,现在要求0的位置为白色,并且色条范围为-9到9,这里使用breaks参数重新定义色条范围并根据break范围划分颜色范围,代码如下: #breaks bk <- c(seq(-9,-0.1,by=0.01),seq(0,9,by=0.01)) #做热图: pheatmap(data1, scale = "none", color = c(colorRampPalette(colors = c("blue","white"))(length(bk)/2),colorRampPalette(colors = c("white","red"))(length(bk)/2)), legend_breaks=seq(-8,8,2), breaks=bk) 结果如下: 精品课程推荐: 《中药复方网络药理学联合GEO》 《TCGA单基因挖掘套路》 《GEO单细胞测序分析》 责任编辑:伏泽 作者申明:本文版权属于生信自学网(微信号:18520221056)未经授权,一律禁止转载! |