在分类变量中排除 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()
我对 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()