在分类变量中排除 levels/groups(ggplot 图)

Excluding levels/groups within categorical variable (ggplot graph)

我对 ggplot 比较陌生,我对用 11 groups/levels 可视化分类变量很感兴趣。我 运行 下面的代码生成一个条形图,显示每个组的频率。但是,鉴于分类变量“活跃”中的某些组仅出现一次或零次,它们会使图表混乱。因此,是否可以直接排除 < 2 个观察值的分类变量中 ggplot 中的组?

如果条形图不适合此处,我也愿意接受有关如何使用多个 groups/levels 可视化分类变量的建议。

数据类型

sapply(df,class)
   username      active 
"character" "character" 
ggplot(data = df, aes(x = active)) +
  geom_bar() 

您可以先 count() 类别,然后 filter(),然后再提供给 ggplot。这样,您将使用 geom_col() 代替:

df %>% count(active) %>% filter(n>2) %>% 
  ggplot(aes(x=active,y=n)) + 
  geom_col()

或者,您可以直接在 ggplot() 调用中 group_by() / filter(),如下所示:

ggplot(df %>% group_by(active) %>% filter(n()>2), aes(x=active)) + 
  geom_bar()