美文网首页R语言绘图技巧
R语言pheatmap热图色条控制小技巧

R语言pheatmap热图色条控制小技巧

作者: PhageNanoenzyme | 来源:发表于2022-06-30 14:46 被阅读0次

    本期介绍一个控制热图颜色范围并规定指定值颜色的小技巧。

    使用的是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如下:

    image

    查看数据范围:

    range(data1)
    
    
    image

    使用上面的矩阵做热图,要求低值为蓝色,高值为红色,中间值为白色:

    pheatmap(data1,
             scale = "none",
             color = colorRampPalette(colors = c("blue","white","red"))(100)
             )
    
    

    结果如下:

    image

    数据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)
    
    

    结果如下:

    image

    相关文章

      网友评论

        本文标题:R语言pheatmap热图色条控制小技巧

        本文链接:https://www.haomeiwen.com/subject/kqbfbrtx.html