我正在用ggplot2 geom_bar制作标准条形图。我正在尝试用与最低值的条不同的颜色填充最高值的条。
例如,
ggplot(mtcars, aes(x=as.factor(cyl) )) + geom_bar()
如何为20以上的红色条(例如E),10至20的蓝色条(B和D)以及10以下的橙色(A和C)条着色。
感谢您的见解!
我使用的是geom_col,我的实际代码如下:
ggplot(data, aes(x=State, y=Value)) +
geom_col()
答案 0 :(得分:3)
您可以使用cut
ggplot(mtcars, aes(x = as.factor(cyl))) +
geom_bar(aes(fill = cut(stat(count), breaks = c(0, 8, 12, Inf)))) +
labs(fill = "Breaks")
您显然需要根据需要/数据调整休息时间。
修改
如果我们使用geom_col
而不是geom_bar
,则需要将fill = stat(count)
更改为fill = value_column
(无论value_column
是什么,但都应与我们映射到y
的一个)。
示例:
df <- data.frame(trt = c("a", "b", "c"), outcome = c(2.3, 1.9, 3.2))
ggplot(df, aes(trt, outcome)) +
geom_col(aes(fill = cut(outcome, breaks = c(0, 2, 3, Inf)))) +
labs(fill = "Breaks")