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に投稿された内容を翻訳して大幅に改編したものです: