Q: 11 ggplot2でspline()関数を使って曲線を描きたい
11.1 Q
私の持っているデータで、spline(y~x)
というようにspline関数を使って曲線を描きたいのですが、lm(y~ns(x), df=_)
といったスムージングを使う方法しか見つけられません。
どうしてもspline()
を使いたいのですが、ggplotでspline()
を使うシンプルな方法はありますか。以下のような方法を考えたのですが、できればこういうテクニックに頼りたくありません:
geom_smooth(aes(x=(spline(y~x)$x, y=spline(y~x)$y))
11.2 A
以下の方法を試してみてください:
library(ggplot2)
n <- 10
d <- data.frame(x = 1:n, y = rnorm(n))
ggplot(d,aes(x,y)) + geom_point() +
geom_line(data=data.frame(spline(d, n=n*10)))
まず実際のデータをgeom_point()
でプロットしておき、スプライン曲線はgeom_line()
で引きます。このとき、この曲線で使用するデータとして、spline()
で処理したデータフレームを指定すればOKです。
11.3 参照
この記事は、以下のStack Overflowに投稿された内容を翻訳して大幅に改編したものです: