rglパッケージで3D散布図&アニメーションをかく
久しぶりに備忘録。少し手を焼いたので。
Rで3D散布図。
rglパッケージは普通にインストール。
まずはデータ読み込み。ggplot2のmsleepデータセットを用いる。
library(rgl) data(msleep, package="ggplot2")
plot3dコマンドで散布図作製。マウスでグリグリ動かすこともできる。
open3d(windowRect=c(0,0,512,512)) bg3d("white") plot3d(x=msleep$sleep_total-msleep$sleep_rem, y=msleep$sleep_rem, z=msleep$awake, col=msleep$conservation, xlab="NREM", ylab="REM", zlab="AWAKE")
さらにグリグリうごかしている様子をアニメーションとして保存したい場合は、ImageMagickをインストールしておいて:
m<-par3d("userMatrix") Sys.setenv(PATH=paste("/opt/local/bin", Sys.getenv("PATH"), sep=":")) #change this depending on your env. movie3d(par3dinterp(userMatrix=list(m, rotate3d(m, pi/4, 1, 0, 0), rotate3d(m, pi/4, 0, 1, 0), rotate3d(m, pi/4, 0, 0, 1))), duration=6, movie="msleep", dir=".", convert="convert -delay 1x%d %s*.png %s.%s")
NREMとREMとAWAKEの合計時間は24時かんなので見事に1つの平面にのっていますねw
open3dで作ったウィンドウを消すには:
rgl.close()