2016-06-14 16 views
2

私はRプロではなく、自己教えてくれてありがとうございます。plot3dを回転するとR {rgl}でskipRedrawを使用する

私は自分のデータを3次元でプロットし、自動的に回転させることができます。しかし、回転している軸の自動再描画を停止したい。私はpar3d(skipRedraw = TRUE)を使って多くのリソースを見つけましたが、それを私のコードに組み込む方法を理解することはできません。

また、(私はこれをあきらめようとしていましたが、とにかく頼んでいるので)軸ラベルを軸の目盛りの横に置くこともできます/反対側に)。しかし、これは副次的なものです。

ありがとうございます!

mydata<-read.csv(file=file.choose(),header=TRUE,row.names=1) 
mydata$Colour<-factor(mydata$ColourB,levels=c("Black","Blue","Red","Green","Yellow","Purple","Brown")) 
colourb<-as.character(mydata$ColourB) 
library(rgl) 
open3d() 
plot3d(mydata[,"Sr"], 
    mydata[,"Rb"], 
    mydata[,"Zr"], 
    xlab="Sr (ppm)", 
    ylab="Rb (ppm)", 
    zlab="Zr (ppm)", 
    pch=21, 
    col=colourb, 
    type="s", 
    radius=10 
) 
bgplot3d({ 
    plot.new() 
    title(main = 'Trace Elements', line = 1) 
}) 
play3d(spin3d(axis=c(0,0,1), rpm=10), duration=10) 
+0

あなたの質問の後半部分は、ここで回答されています。を参照してください。簡単ではない。私はあなたが何をしたいのか分かりませんし、あなたのコードを他の人が実行することはできないので、私は最初の部分を助けることはできません。 – user2554330

答えて

0

軸の自動再描画を停止するのは簡単です。 bbox軸を使用すると(デフォルト)、それらは再描画されます。したがって、固定位置の軸だけを使用します。 (編集:私はあなたのquiestionを誤解かもしれません。)ここで

は( treesをデータを使用して)私の例である:

open3d() 
plot3d(trees, type="s", radius=0.4, col="red", xlab="xxx", ylab="yyy", zlab="zzz", 
     axes=F) # not use bbox-axes 
axes3d(edges = c("x","y","z")) # draw fixed position axes 
box3d()      # if you need, draw full box 

bgplot3d({ 
    plot.new() 
    title(main = 'Trees', line = 1) 
}) 
play3d(spin3d(axis=c(0,0,1), rpm=10), duration=10) 


# PS: skipRedraw isn't what you think. 
plot3d(trees) 
par3d(skipRedraw = T) # you can't turn the graph by drag 
+0

私はそれが実際にOPがやりたいことではないと思います。私はそれが移動しないでボックスの中で回転するオブジェクトを持っていることが望ましいものだと思う。 –

+0

答える前に、私はマナーを学ぶべきだった。私にそれを実現させてくれてありがとう!あなたの最初のコメントについては、私は確かに言うことはできません...しかし、あなたは正しいかもしれません。 – cuttlefish44

+0

彼ははっきりしていませんが、そうでなければ簡単すぎます。モデリング行列を補間するために 'par3dinterp'を修正することができますが、これを試してみることはできませんでした。 –

関連する問題