我有一个数据框,其列为word
,我想用ggplot在条形图中显示文本中的前10个字。
这是代码:
text_df %>% count(word, sort = TRUE) %>% top_n(10)
结果符合预期。现在,我想在图形中显示出来:
text_df %>% count(word, sort = TRUE) %>% top_n(10) >%>
ggplot(aes(word, n)) + geom_col()
现在排序丢失了,十个单词以(对我来说)随机的顺序出现。为什么分类丢失?我会错误地使用命令吗?
答案 0 :(得分:1)
首先,您的ggplot
失去顺序的原因是因为ggplot
期望输入作为具有水平的因子。
在绘制并发送到ggplot之前,使用fct_reorder
库中的forcats
可以对您面临的问题进行排序
library(forcats)
library(ggplot2)
temp %>% count(word, sort = TRUE) %>% top_n(10) %>%
mutate(word=fct_reorder(word,-n)) %>%
ggplot(aes(word, n)) + geom_col()