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
            
ggplot_scale_discrete1.png

ヒストグラムの作り方がよくわからない方は, よろしければ「ヒストグラムの作り方」を参考になさってください. では, 本題にとりかかります. 今, 上のグラフでは, 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
            
ggplot_scale_discrete2.png

これで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
            
ggplot_scale_discrete3.png

先ほどど違うところは, 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
            
ggplot_scale_discrete4.png

先ほどど違うところは, 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
            
ggplot_scale_discrete5.png