首页 > 解决方案 > 分组数据框 - 分组为 ggplot 中的方面?

问题描述

一些数据

grp_diamonds <- diamonds %>% 
  group_by(cut) %>%
  group_split


grp_diamonds[[1]] %>% 
  ggplot(aes(x = carat, y = price)) +
  geom_point()

这将返回一个情节grp_diamonds[[1]] 在此处输入图像描述

但 grp_diamonds 实际上是我group_split()之前使用的 5 个数据帧的列表。

有没有一种聪明的方法可以自动将组用作构面?

是的,在这个例子中你可以这样做:

diamonds %>% 
  ggplot(aes(x = carat, y = price)) +
  geom_point() +
  facet_wrap(vars(cut))

但我想知道是否有一种方法可以根据现有分组自动分面?

标签: rggplot2

解决方案


使用dplyr::groupsanddplyr::vars!!!一个选项是:

library(dplyr)
library(ggplot2)

grp_diamonds <- diamonds %>% 
  group_by(cut, color)

grp_diamonds %>% 
  ggplot(aes(x = carat, y = price)) +
  geom_point() +
  facet_wrap(facets = vars(!!!groups(grp_diamonds)))


推荐阅读