ggplotで、異なるデータで同じ形のプロットしたいときの一つのやり方。
%+%
を使うことで、事前に作ったggplotオブジェクトを使いまわして、データを入れ替えできる。
まずは、プロットの型を作る。
R
g <- ggplot(data=iris, aes(x=Sepal.Length, Sepal.Width)) +
geom_point() +
xlim(4, 8) +
ylim(1, 5)
※この時点で、dataは指定しなくても問題ない。(NULLなどでもよい)
ちなみに、上記g
を表示すると次のイメージ。
次に、データを入れ替える。(本題)
R
g %+%
filter(iris, Sepal.Length < 6)
R
g %+%
filter(iris, Sepal.Length >= 6)
もともとのプロットの型をアレンジすることも可能。
※なお下のコードは、もとのgeom_point()
の後で、geom_point(color="blue")
が再度処理されているイメージ。
R
g %+%
filter(iris, Sepal.Length >= 6) +
geom_point(color="blue") +
geom_smooth(method="lm", color="black")