我总是喜欢在数据框中对图表进行排序,而不是在ggplot中使用reorder()
函数对此策略进行排序,这种策略大部分时间都有效,但有时候,即使我没有改变任何内容,图表也会排序按字母顺序...
数据帧:
library(tidyverse)
most_used_words %>%
arrange(desc(times_used)) %>%
top_n(5)
A tibble: 20 x 2
word times_used
<chr> <int>
1 news 148
2 fake 147
3 people 133
4 country 95
5 tax 92
most_used_words %>%
arrange(desc(times_used)) %>%
top_n(5) %>%
ggplot(aes(x = word, y = times_used)) +
geom_col(fill = "#03A9F4") +
coord_flip()
以下代码在ggplot ...
中正确排序times_used变量most_used_words_candidate %>%
arrange(desc(times_used)) %>%
top_n(5)
# A tibble: 20 x 2
word times_used
<fctr> <int>
1 realdonaldtrump 965
2 trump 762
3 people 489
4 hillary 435
5 america 350
most_used_words_candidate %>%
arrange(desc(times_used)) %>%
top_n(5) %>%
ggplot(aes(x = word, y = times_used)) +
geom_col(fill = "#03A9F4") +
coord_flip()
答案 0 :(得分:2)
@aosmith是对的。 ggplot
期望输入作为具有级别的因素。这就是你的第二个代码正确排序的原因。如果你试试这个
df$word <- factor(df$word , levels=unique(df$word ))
并重新绘制第一个代码。它将按照您喜欢的字母顺序排序。