ggplot2でX軸の大小を反転させる方法(factorの場合)
はじめに
ggplot2でX軸の大小を反転させる方法について
無指定の場合
ggplot2で描画する際にcoord_flip()
を使用するとX軸とY軸を入れ替えることができる。
ただし、その場合には順番が小さい方が下にきてしまい、思い通りの図にならない。
library(ggplot2)
p <- ggplot(iris)
p + aes(x = Species, y = Sepal.Length) +
geom_boxplot() +
coord_flip()
reorder関数とdplyr::desc関数を使用する場合
このサイトの内容を参考にしました。
reorder
関数を使用することでfactorの順序を変えることができる。
この時dplyr
パッケージのdesc
関数で降順に変換する。
ただし、後に示しているが、
forcats
パッケージのfct_rev
関数を使用する方法が最も簡単である。
library(ggplot2)
p + aes(x = reorder(Species, dplyr::desc(Species)),
y = Sepal.Length) +
geom_boxplot() +
coord_flip()
forcatsパッケージのfct_rev関数を使用する場合
ここではforcats
パッケージのfct_rev
関数を使用した方法を示す。
この関数はfactorの順序を反転させるものである。
したがって、個人的にはこの方法を使用することにする。
library(ggplot2)
library(magrittr)
library(forcats)
p + aes(x = Species %>% fct_rev, y = Sepal.Length) +
geom_boxplot() +
coord_flip()
forecats
パッケージを読み込まない場合には以下のようにする。
library(ggplot2)
library(magrittr)
p + aes(x = Species %>% forcats::fct_rev(), y = Sepal.Length) +
geom_boxplot() +
coord_flip()