ggplotでの軸の値の順序の変え方, 軸の値の書き換え方, 軸の値の表示の絞り方
Rのggplotでの軸の値の順番の変え方, 軸の値の編集の仕方を解説します. 使う関数は, scale_x_discrete()または, scale_y_discrete()です. 今回は, diamondsというデータセットを使用します.
軸の値の順序の変え方
ではまず元となるグラフを作成します. ヒストグラムを使用します.
> p <- ggplot(diamonds, aes(x=cut)) > p + geom_histogram() > ggsave("ggplot_scale_discrete1.png") Saving 7 x 7 in image
ヒストグラムの作り方がよくわからない方は, よろしければ「ヒストグラムの作り方」を参考になさってください. では, 本題にとりかかります. 今, 上のグラフでは, x軸に"Fair", "Good", "Very Good", "Premium", "Ideal"という順序で描かれています. この順序を変えたいときには, 次のようにします.
> p + geom_histogram() + scale_x_discrete(limits=c("Ideal", "Premium", "Very Good", "Good", "Fair")) > ggsave("ggplot_scale_discrete2.png") Saving 7 x 7 in image
これでx軸の値が逆順になりました. 使い方は, 関数scale_x_discrete()でlimits=軸の値の順番ベクトルのようになります.
もちろん, 逆順でなくても, 色々な順番で作ることができます.
軸の値の書き換え方
先ほどのグラフを元にします. 軸の値を全て頭文字に置き換えようと思います. 以下のようにします.
> p + geom_histogram() + scale_x_discrete(label=c("Fair"="F", "Good"="G", "Very Good"="VG", "Premium"="P", "Ideal"="I")) > ggsave("ggplot_scale_discrete3.png") Saving 7 x 7 in image
先ほどど違うところは, scale_x_discrete()内の引数でlabel=ラベル指定ベクトルとするところです.
軸の値の表示の絞り方
先ほどのグラフを元にします. 上のグラフにおける, PermiumとIdealのみを表示させようと思います. 以下のようにします.
> p + geom_histogram() + scale_x_discrete(limits=c("Premium", "Ideal")) > ggsave("ggplot_scale_discrete4.png") Saving 7 x 7 in image
先ほどど違うところは, scale_x_discrete()内の引数でlimits=表示指定ベクトルとするところです. limitsを使うのは, 一番最初の例と同じですので, 表示範囲を絞りつつ, 順序を変えることもできます.
> p + geom_histogram() + scale_x_discrete(limits=c("Ideal", "Premium")) > ggsave("ggplot_scale_discrete5.png") Saving 7 x 7 in image