x-y平面上のデータを描画することを考える。
散布図をプロットするだけならばplot3dでプロットできる
library(rgl)
plot3d(x, y, z)
surface plotをしたい場合、データがx-y平面上に規則的に並んでいる必要がある。
データが規則的に並んでいない場合は補完をして規則的なデータ点を生成する必要がある。
akimaライブラリを使用して補完し規則的なデータを生成することができる。
library(akima)
interpolated <- interp(x, y, z)
plot3d(x,y,z) # 元のデータ点をプロット
surface3d(interpolated$x, interpolated$y, interpolated$z) #補完したデータをプロット
デフォルトではx,y40点ずつ補完される。
より微細に補完したい時はxo, yoを指定する。
finer <- interp(x,y,z,xo=seq(min(x),max(x),length=200),yo=seq(min(y),max(y),length=200))
surface3d(finer$x, finer$y, finer$z)