微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ggplot2-如何在热图中使用条件色

如何解决ggplot2-如何在热图中使用条件色

我正在寻找一种制作像这样的情节的方法enter image description here

这是我的R代码,用于绘制此热图。但是,它不起作用。

x <- c(1,2,3,1,3)
pathway <- c("a","b","c","a","c")
value <- runif(9)

jet.colors <-colorRampPalette(c("#FE2423","#F56C76","#FCBEC3","#FEE4E6","#FFFFFF"))
nbcol <- 50
color <- jet.colors(nbcol)


ggplot(data,aes(x=x,y=pathway,fill=value)) + 
  geom_tile() +
  scale_fill_gradientn(colours = ifelse(value<0.2,color,"black"))

我期望的是,对于值小于或等于0.2的图块,颜色逐渐从红色变为白色。对于值大于0.2的图块,颜色不是渐变的(纯黑色)。

解决方法

这可以通过将渐变的值设置为values=c(0,0.2),将颜色设置为红色和白色以及na.value="black"来实现。为了使示例更加有趣,我添加了一些其他数据。 (;

# Packages ----------------------------------------------------------------
library(ggplot2)

set.seed(42)

data <- data.frame(x = rep(1:100,each = 100),pathway = rep(1:100,100),value = runif(100 * 100))

ggplot(data,aes(x=x,y=pathway,fill=value)) + 
  geom_tile() +
  scale_fill_gradientn(breaks = seq(0,1,.2),values = c(0,0.2),colors = c("#FE2423","#FFFFFF"),na.value = "black")

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。