将“总体”组添加到facet_wrap(ggplot2)

时间:2019-02-04 19:34:44

标签: r ggplot2 markdown facet-grid

我的数据中有两个组,即A1和A2。每一组有大约50%的男性,年龄分布大致正常。我想按性别绘制各组的年龄分布直方图,并按性别绘制总体年龄分布(也许也可以是无性别的?)。age vs. density

有没有办法用facet_wrap做到这一点?如果没有,有没有办法我可以处理我的数据(例如添加一个虚拟变量)并将其添加?

1 个答案:

答案 0 :(得分:1)

假设您有:

library(tidyverse)
ggplot(iris, 
       aes(Sepal.Length, fill = Sepal.Width > 3)) + 
  geom_histogram() +
  facet_wrap(~Species)

enter image description here

您可以操纵数据以包含“总物种”始终为“总”的数据集的另一个副本。然后geom_histogram将使用与“ total”相对应的构面的完整数据集。

ggplot(iris %>%
         bind_rows(iris %>% mutate(Species = "total")), 
       aes(Sepal.Length, fill = Sepal.Width > 3)) + 
  geom_histogram() +
  # I want 'total' at the end
  facet_wrap(~fct_relevel(Species, "total", after = Inf), nrow = 1)

enter image description here