12

ボックス内のポイントを「キャプチャ」しようとする回帰アルゴリズムを書いています。アルゴリズムはボックスを可能な限り小さく保とうとするため、通常、ボックスのエッジ/コーナーはポイントを通過します。これにより、ボックスのサイズが決まります。

問題:Rのボックスのグラフィック出力が必要です。2Dではsegments()、2点間に線を引くでボックスを簡単に描画できます。したがって、4つのセグメントを使用して、ボックスを描画できます。

plot(x,y,type="p")
segments(x1,y1,x2,y2)

次に、3Dプロット用にscatterplot3dとパッケージの両方を試しました。plot3d3Dでは、segments()追加のzコンポーネントがないため、コマンドは機能しません。どうやら(私には)3Dで適切な代替品がないことに驚きましたsegments()

3次元でプロットするときに、2点間にボックス/線を描く簡単な方法はありますか?

4

1 に答える 1

14

このscatterplot3d関数は、次のように、(x,y,z) ポイントを関連する平面に投影できるようにする情報を返します。

library(scatterplot3d)
x <- c(1,4,3,6,2,5)
y <- c(2,2,4,3,5,9)
z <- c(1,3,5,9,2,2)
s <- scatterplot3d(x,y,z)

## now draw a line between points 2 and 3
p2 <- s$xyz.convert(x[2],y[2],z[2])
p3 <- s$xyz.convert(x[3],y[3],z[3])
segments(p2$x,p2$y,p3$x,p3$y,lwd=2,col=2)

パッケージは別のrgl方法であり、おそらくさらに簡単です (ベクトルからsegments3dポイントをペアで取得することに注意してください)。

plot3d(x,y,z)
segments3d(x[2:3],y[2:3],z[2:3],col=2,lwd=2)
于 2012-11-21T15:03:33.337 に答える