3次元のベクトル場を書く際には(heplots | compositions)パッケージの(arrow3d | arrows3D)関数
rglパッケージベースな3次元ベクトルのplot on 3次元には(heplots | compositions)パッケージを使うのがよさげか。書き方の便利さからcompositionsパッケージを使っていきたい。
また、rglベースじゃなく、静止画でOKならplot3Dパッケージもあった。
heplotsパッケージ
第一・二引数にベクトルの始・終点を入れる。
一気に複数のベクトルが書けないぽいのでループでまわさんとだめっぽい。
↓適当なベクトル100個を描画
library("heplots") for(i in 1:100) { arrow3d(rep(0, 3), rnorm(3), barblen=.2, lwd=1, col="red") }
compositionsパッケージ
同様に、素直に始・終点だけ入れる。こちらはベクトル(行列)として渡せるので楽。
library("compositions") x <- matrix(rnorm(300), nrow=100, ncol=3) x0 <- x*0 arrows3D(x0,x)
範囲のボックスを付けたい
xlim, ylim, zlim引数を指定してdecorate3d関数を叩けばベクトル場全体を囲むような範囲boxがかける