如何解决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 举报,一经查实,本站将立刻删除。