繁体   English   中英

旋转plot3d时在R {rgl}中使用skipRedraw

[英]Using skipRedraw in R {rgl} when rotating plot3d

我不是R专业人士,自学成才-谢谢您的帮助!

我已经找到了我满意的以下代码,它为我提供了3d数据图,并且可以自动旋转它。 但是,我想停止旋转时轴的自动重绘。 我已经使用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)

停止自动重绘轴很容易。 使用bbox-axes(默认)时,它们会被重绘。 因此,您仅使用固定位置轴。 (编辑:我可能会误解您的询问。)

这是我的示例(使用数据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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM