4

ボクセルオブジェクト(3D配列)をプロットするためのライブラリまたは関数がRに存在するかどうかを知っていますか?3D散布図を実行できるパッケージrglを見つけましたが、3D配列で機能する関数「image」に相当するものを本当に探しています。ありがとう

4

1 に答える 1

5

以下は、rgl パッケージを使用した基本的な例です。3D 配列で動作する関数に簡単に作成して、色、アルファ、またはその他の関心のある機能を変更できます。

library(rgl)
cubit=cube3d(color="blue", alpha=0.3)
cubit$vb[cubit$vb == -1]= 0
gridx=0:5;gridy=0:5;gridz=0:5
temp=cubit
plot3d(temp,box=FALSE,axes=FALSE,xlab="",ylab="",zlab="")
wire3d(temp,add=TRUE,color="blue",alpha=1)
for(ix in gridx){
  for(iy in gridy){
    for(iz in gridz){
      temp$vb[1,]=cubit$vb[1,]+ix
      temp$vb[2,]=cubit$vb[2,]+iy
      temp$vb[3,]=cubit$vb[3,]+iz
        shade3d(temp,add=TRUE,,alpha=runif(1))      
        wire3d(temp,add=TRUE,color="blue")
    }
  }
}

私はこのようなものを使用しましたが、メモリサイズが非常に急速に増加することに気付きました (3 ~ 4Gb の RAM を使用すると、60000 ボクセルを超えることはできません)。plot3D パッケージの cube3D を使用して同様のことを試みましたが、非インタラクティブなプロットの方がメモリ効率が高い (はずです!) と考えていましたが、何らかの理由でこのパッケージのパフォーマンスは低下しました (1000 ボクセルのみ)。固体の立方体がある場合は、ploygon3D プロットを使用して外側のエッジのみをプロットする方がずっと賢くできますが、それは私の場合ではありません。私はまだ R 機能を使用してより良いパフォーマンスを探していますが、ここで道を横切る他のさまよう魂の場合に備えて、この会話に追加する必要があると考えました.

于 2015-02-17T11:12:09.293 に答える