ggplot2-如何在热图中使用条件颜色
ggplot2-How do I use conditional colours in heat map
我正在寻找一种方法来制作这样的情节enter image description here
这是我绘制此热图的 R 代码。但是,它不起作用。
x <- c(1,2,3,1,2,3,1,2,3)
pathway <- c("a","b","c","a","b","c","a","b","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")
我正在寻找一种方法来制作这样的情节enter image description here
这是我绘制此热图的 R 代码。但是,它不起作用。
x <- c(1,2,3,1,2,3,1,2,3)
pathway <- c("a","b","c","a","b","c","a","b","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")