2015-12-31 33 views
11

Rでこれと同様のプロットを作成するのに役立つでしょうか?球上のプロット点R

enter image description here

私はそれがインタラクティブな私は球を回転させることができることをしたいと思います。私はrglを使うべきだと思います。私はhereが必要なものに似た例を見つけましたが、塗りつぶされた球の代わりにグリッドを描く方法を見つけることができませんでした。

UPD:質​​問に答える助けることができる再現性のあるデータセットが(私はhereからそれを取った): "ワイヤーフレーム" 球体を作成するために

library("rgl") 
spheres3d(0,0,0,lit=FALSE,color="white") 
spheres3d(0,0,0,radius=1.01,lit=FALSE,color="black",front="lines") 

u <- runif(1000,0,1) 
v <- runif(1000,0,1) 
theta <- 2 * pi * u 
phi <- acos(2 * v - 1) 
x <- sin(theta) * cos(phi) 
y <- sin(theta) * sin(phi) 
z <- cos(theta) 
library("lattice") 
cloud(z ~ x + y) 

答えて

17

スタート(I 2つの球体を描くことでちょっと違和感を覚えています。もう1つの球体より少し大きめですが、これを行うにはもっと良い方法があるかもしれませんが、簡単に/すぐにそれを理解することはできませんでした。

我々は同様に、我々はUを選ぶことができます= COS(PHI)が均一に分布(ので、我々はデュ=罪のファイdphiを持っている)して得ることが

を取得Wolfram web page on sphere point picking(あなたの写真のソース)から

ポイントx = sqrt(1-u^2)*cos(theta); ; z=u、[0,2pi]にtheta、[-1,1]にuがあり、これらもS^2に一様に分布しています。

ので:

set.seed(101) 
n <- 50 
theta <- runif(n,0,2*pi) 
u <- runif(n,-1,1) 
x <- sqrt(1-u^2)*cos(theta) 
y <- sqrt(1-u^2)*sin(theta) 
z <- u 
spheres3d(x,y,z,col="red",radius=0.02) 

球がレンダリングに少し手間がかかりますがpoints3d()(フラット四角)の結果よりもきれいです...

enter image description here

+0

ノートのマーベリックス+ Macユーザー現在のバージョンrgl_0.95.1435のソースからコンパイルすると、CRANのバイナリバージョンよりも良い結果が得られる場合があります。 –

+0

球にバックポイントを表示しないようにすることはできますか?透明でないようにするには? – desa