Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
旋转plot3d时在R{rgl}中使用skipRedraw_R_Rgl - Fatal编程技术网

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

旋转plot3d时在R{rgl}中使用skipRedraw,r,rgl,R,Rgl,我不是R专业人士,自学成才-谢谢您的帮助 我已经想出了下面的代码,我很满意,这给了我一个我的数据三维绘图,我可以自动旋转它。但是,我想在轴旋转时停止轴的自动重画。我已经找到了许多使用par3d(skipRedraw=TRUE)的资源,但我不知道如何将其合并到我的代码中,这一切都有点超出我的理解范围 另外,(我本来打算放弃这一点,但因为我一直在问),我也希望轴标签能够保持在轴记号旁边(而不是在它的对面/另一侧)。但这是次要的 提前谢谢你 mydata<-read.csv(file=file.

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

我已经想出了下面的代码,我很满意,这给了我一个我的数据三维绘图,我可以自动旋转它。但是,我想在轴旋转时停止轴的自动重画。我已经找到了许多使用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)

mydata很容易停止轴的自动重画。使用bbox轴(默认)时,将重新绘制它们。所以你只需要使用固定位置的轴。(编辑:我可能误解了你的沉默。)

下面是我的示例(使用数据
):


你问题的第二部分在这里得到了回答:。它不容易。我不确定你想要发生什么,你的代码不能被其他人运行,所以我不能帮助你完成第一部分。我不认为这是OP真正想要做的。我想让物体在盒子里旋转而不移动是我想要的。在回答之前,我应该学会礼貌。谢谢你让我意识到这一点!!!至于你的第一个评论,我不能肯定…,但你可能是对的。他不清楚,但如果不是这样,那就太容易了。我认为有人可能会修改
par3deinterp
来插值建模矩阵,但还没有来得及尝试一下。@Mike Wise再次感谢。如果对象在长方体内部旋转而不移动,我将使用plot3d(~,axes=F)和bgplot3d(persp(~,ticktype=“detailed”,border=NA,col=”“white”))。
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