ggplot的每个方面都有不同的`geom_hline()`

时间:2019-01-17 20:43:35

标签: r ggplot2 dplyr

facet

library(tidyverse)
ggplot(mpg, aes(cty, hwy)) + 
  geom_point() + 
  facet_grid(year ~ fl) + 
  geom_hline(yintercept = mean(mpg$hwy))

我希望上面显示的构面中的每个geom_hline()是仅包含在该构面中的点的均值。我认为我可以用下面的方法做到这一点。但这是行不通的。我很近吧?

library(tidyverse)
ggplot(mpg, aes(cty, hwy)) + 
  geom_point() + 
  facet_grid(year ~ fl) + 
  geom_hline(yintercept = mean(mpg %>% group_by(year, fl)$hwy))

1 个答案:

答案 0 :(得分:1)

如果您希望将每个构面的值用作数据框中的列,并且该值在每个构面内都是唯一的,则可以使用geom_hline(aes(yintercept = column)),然后进行绘制每个方面的一条水平线