繁体   English   中英

如何用y轴值对geom_bar进行着色?

[英]How to color geom_bar by y-axis values?

我正在使用ggplot2 geom_bar制作标准条形图。 我试图用最高值填充条形,使用与具有最低值的条形图不同的颜色。

例如,

ggplot(mtcars, aes(x=as.factor(cyl) )) + geom_bar()

如何在红色(例如,E)中将20以上的条纹,以蓝色(B和D)从10到20的条形,以及在橙色(A和C)中的10以下的条形。

感谢您的任何见解!

在此输入图像描述

我正在使用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_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")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM