1
reorder()
関数を使ってggplotではなくデータフレーム内でチャートを並べ替えるのが大好きです。この戦術はほとんどの時間で動作しますが、何も変更しなくても、ggplotは値をソートしません
DATAFRAMEアルファベット順にチャート注文chages ...:
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()
私はあなたが必要なものであるすべての() ''ここではリオーダーを使用して表示されません。 data.frame自体の行の順序はまったく重要ではありません。プロット順序を決定する要素のレベルの順序であり、 'reorder()'を使って変更するのが最も簡単な方法です。私はあなたが本当にここで尋ねていることを理解していません。あなたはすでに正しい答えを知っているようです。 – MrFlick
しかし、奇妙なことは、2番目のプロットがデータを正しくソートすることです。しかし、どちらも同じコードで構成されています。 – Tdebeus
あなたの2つの例の 'word'変数は、異なる変数型です。最初はそれが文字であり、2番目は文字です。私の推測では、第2の例の因子のレベルは、すでに所望の順序である。最初の例で同じ動作をさせるには、プロットする前に因子に変換し、レベルの順序を設定します。 – aosmith