R语言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)

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

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)

结果如下:



更多原创精彩视频敬请关注生信杂谈:

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1、窗体 1、常用属性 (1)Name属性:用来获取或设置窗体的名称,在应用程序中可通过Name属性来引用窗体。 ...
    Moment__格调阅读 4,607评论 0 11
  • TaoYan 简介 本文将绘制静态与交互式热图,需要使用到以下R包和函数:heatmap():用于绘制简单热图的函...
    taoyan阅读 47,710评论 4 129
  • 最近需要给直播项目中添加美颜的功能,调研了很多SDK和开源代码(视决,涂图,七牛,金山云,videoCore等),...
    未来的路就在那阅读 2,075评论 1 1
  • 二零一零那一年过的似乎特别的快,我清晰地记得那一年我回了5趟家,每次花费十六个小时的生命,和不同的人群去往同一个目...
    图土土阅读 280评论 0 0
  • 我不知道,是不是每一个喜欢登山和挑战自我的人,都和我一样,有着征服华山的情结。反正我是心心念了很多年,只是一直未能...
    陌上江南阅读 554评论 2 4