ggplotを使う時、同じデータを指定し続けるのが面倒くさい。
楽してグラフを書く方法を探すと、ggplotでも継承が使えるようだ。
サンプルデータのmpgを使ってみる。
> mpg
# A tibble: 234 x 11
manufacturer model displ year cyl trans drv cty hwy fl class
<chr> <chr> <dbl> <int> <int> <chr> <chr> <int> <int> <chr> <chr>
1 audi a4 1.8 1999 4 auto(l5) f 18 29 p compact
2 audi a4 1.8 1999 4 manual(m5) f 21 29 p compact
3 audi a4 2 2008 4 manual(m6) f 20 31 p compact
4 audi a4 2 2008 4 auto(av) f 21 30 p compact
5 audi a4 2.8 1999 6 auto(l5) f 16 26 p compact
6 audi a4 2.8 1999 6 manual(m5) f 18 26 p compact
7 audi a4 3.1 2008 6 auto(av) f 18 27 p compact
8 audi a4 quattro 1.8 1999 4 manual(m5) 4 18 26 p compact
9 audi a4 quattro 1.8 1999 4 auto(l5) 4 16 25 p compact
10 audi a4 quattro 2 2008 4 manual(m6) 4 20 28 p compact
# … with 224 more rows
適当な散布図を書いて近似曲線と95%信頼区間を描画してみる。
> ggplot() +
geom_point(data = mpg, mapping = aes(x = displ, y = cty)) +
geom_smooth(data = mpg, mapping = aes(x = displ, y = cty), method = "lm")
geom_pointとgeom_smoothで同じ引数を取っていて、2回も入力するのは手間。
そこで、最初のggplot内で指定してやると、自動的にそれ以降のレイヤーで継承される。
> ggplot(data = mpg, mapping = aes(x = displ, y = cty)) +
geom_point() +
geom_smooth(method = "lm")
これでコーディングや保守性も上がる。
コメント