使用
ggplot2
,我想将连续值分入三个容器,并为每个容器分配特定的颜色。
在下面的代码示例中,我希望所有值 < 10 to be black, values >=10 和 <= 100 to be red, and all values > 100 均为白色。
data.frame(c = c("a", "b", "c"), v = c(1,50,500)) %>%
ggplot(aes(y = c, x = "1", fill = v)) +
geom_tile() +
scale_fill_stepsn(colors = c("black", "red", "white"),
breaks = c(10, 100),
labels = c(10, 100))
感谢您的帮助。
这不使用
scale_fill_stepsn
,但执行预期的绘图任务(如果我正确理解了问题)。
dat <- tibble(c = letters[1:5], v = c(1, 10, 50, 100, 500)) %>%
mutate(vcat_color = case_when(
v < 10 ~ "black",
between(v, 10, 100) ~ "red",
v > 100 ~ "white"
))
dat %>%
ggplot(aes(y = c, x = "1", fill = vcat_color)) +
geom_tile() +
scale_fill_identity(
"v",
breaks = c("black", "red", "white"),
labels = c("v < 10", "10 <= v >= 100", "v > 100"),
guide = "legend"
)