问题描述
我正在寻找一种制作像这样的情节的方法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")