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