R 如何通过y轴值为几何图形条着色?
我正在用ggplot2 geom_bar绘制标准条形图。我试着用一种不同于最低值条的颜色来填充最高值条 比如说,R 如何通过y轴值为几何图形条着色?,r,ggplot2,R,Ggplot2,我正在用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() 您
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()
您可以使用
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\u col
而不是geom\u bar
,我们需要将fill=stat(count)
更改为fill=value\u column
(无论value\u 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")
df我添加了一个,谢谢。你可以使用cat
。谢谢@RuiBarradas。编辑。嗯,这对我不起作用。我实际上在用geom_col.谢谢!我以前有一个不相关的bug。