Q: 6 ggplot2で縦軸と横軸をひっくり返したい
6.1 Q
例えば以下のようなグラフで、x軸とy軸をひっくり返したい(横棒グラフ)にしたいのですが、どうしたらいいのでしょうか?
library(ggplot2)
ggplot(mtcars, aes(x = as.factor(gear))) +
geom_bar()
6.2 A
+ coord_flip()
を追加すると、x軸とy軸が入れ替わります:
ggplot(mtcars, aes(x = as.factor(gear))) +
geom_bar() +
coord_flip()
この設定は、別に棒グラフだけではなく、全てに適用可能です。
6.3 応用
このcoord_flip()
を設定した場合、更に軸に設定を加えるときは元の座標軸に設定してください:
例) count
軸の範囲を変更する場合:
ggplot(mtcars, aes(x = as.factor(gear))) +
geom_bar() +
coord_flip() +
ylim(c(0,20))
また、棒グラフを横にすると、下から順番にならびます。軸の内容の並べ替えについては、以下の記事を参照してください: - ggplot2逆引き - x軸を並べ替えたい - Qiita
今回x軸はfactor型なので、順番を入れ替えるには以下のようにreorder()
を当てて変更しておく必要があります:
例) as.factor(gear)
軸の順序を反転する場合:
ggplot(mtcars, aes(x = reorder(as.factor(gear), gear * -1))) +
geom_bar() +
coord_flip()
なお、x軸が連続変量であったならば、単に+ scale_x_reverse()
を追加すればOKです。
例) gear
軸の順序を反転する場合:
ggplot(mtcars, aes(x = gear)) +
geom_bar() +
coord_flip() +
scale_x_reverse()