R和rgl:使用points3d

时间:2015-08-31 18:09:25

标签: r rgl

我一直在努力寻找一种使用rgl显示3d点的正确方法。我尝试过使用points3dspheres3d,但直到现在都没有成功。看看我做了什么:

require(rgl)
x = runif(10, 0, 1)
y = runif(10, 0, 1)
z = runif(10, 0, 100)
test<-data.frame(x=x, y=y, z=z)

points3d(test$x,test$y,test$z,col='red',size=3)
box3d()

points3d with problem in scale

我读了这个https://r-forge.r-project.org/tracker/?func=detail&group_id=234&aid=4933&atid=946,但也没有成功。

如果我将xy乘以100,我可以得到我想要的内容:

test<-data.frame(x=x*100, y=y*100, z=z)

points3d with a workaground

但是,考虑到x,y,z的值可以假设不同的精度值,我需要创建一些来将每个变量放在相同的比例(?)。

使用points3d时,是否有更好的方法可以避免缩放问题?我必须使用points3dsphere3d(而不是直接使用plot3d)因为我需要用曲面覆盖点。

谢谢大家!

1 个答案:

答案 0 :(得分:2)

您可以使用aspect3d函数指定相对缩放。

points3d(test$x,test$y,test$z,col='red',size=3)
box3d()

aspect3d(c(1,1,1))
axes3d()

enter image description here