2013年3月26日火曜日

R の ggplot2 で facet_wrap のスケールを変える

図を描きたくてRのggplot2パッケージを試しています。
その途中でちょっと躓いたので備忘録として書いておきます。

qplot関数において、facet_wrap もしくは facet_grid を足して格子状に分かれたプロットを描く際に、軸の範囲を設定する方法です。
スケールを設定しない場合は、例えば以下のような記述。

qplot(carat, price, data = diamonds) + facet_wrap (clarity~cut)

これを、以下のように書くとスケールを変えることができます。

1. 自動的にスケールを設定

qplot(carat, price, data = diamonds) + facet_wrap (clarity~cut, scales="free")
と書くと、各々のプロットに適したスケールが自動的に設定されます。
ちなみに scales の引数を free_y にしたらY軸のみ、free_x にしたらX軸のみ自動的に設定されます。

2. 任意の範囲でスケールを設定

qplot(carat, price, data = diamonds) + facet_wrap (clarity~cut) + coord_cartesian(xlim = c(0, 1), ylim = c(250,1000))
と書くと、自分の好きな範囲で軸を設定できます。
(2013/03/29追記)ためしてませんが、scale_x_continuousなどの書き方でも可能のようです。勉強必要。

この書き方だと全部の軸が一斉に変わってしまうのですが、個々のプロットに任意の値を設定することはできるんでしょうか…。まだまだ勉強が必要です。
とりあえず備忘録でした。