首页 > 解决方案 > 突出显示 geom_hline 上方的条形图颜色

问题描述

我正在创建一个以平均值为水平线的条形图,并希望为高于平均值的条形着色,但仅对条形的顶部进行着色。这可能吗?

test <- iris %>% group_by(Species) %>% summarise(avg = mean(Sepal.Length))

ggplot(test, aes(x = Species, y = avg)) +
  geom_bar(stat = "identity") +
  geom_hline(yintercept = mean(test$avg))

在此处输入图像描述

期望的输出:

在此处输入图像描述

有任何想法吗?

标签: rggplot2

解决方案


这可能不是最好的解决方案,但它有效:

test <- iris %>% group_by(Species) %>% summarise(avg = mean(Sepal.Length))
test2 <- iris %>% group_by(Species) %>% 
  summarise(avg = mean(Sepal.Length)) %>% 
  mutate(avg, avg = ifelse(avg > mean(avg), mean(avg), avg))

ggplot(test, aes(x = Species, y = avg)) +
  geom_bar(stat = "identity", data=test, fill="red") +
  geom_bar(stat = "identity", data=test2) +
  geom_hline(yintercept = mean(test$avg))

在此处输入图像描述


推荐阅读