"球"在3d图中覆盖一组

时间:2017-05-16 14:08:24

标签: r 3d nearest-neighbor rgl

我的数据包含3个维度。

我计算了特定数据点半径内的最近邻居(使用nn2

然后,我绘制了我的数据的三维图(使用plot3d库中的rgl

plot3d(dfrm[1:3], col=rainbow(2)[dfrm$col], size...)

所以,我有3个彩色情节:

  • 第一个颜色 - 我的数据点

  • 半径范围内的第二个颜色点

  • 第3种颜色 - 其余的点

有没有办法用透明的"球覆盖我的第1和第2颜色组?#34;?

1 个答案:

答案 0 :(得分:0)

使用spheres3d()功能绘制球体。您需要指定中心(可能是您的数据点)和半径。使用类似col = "black", alpha = 0.2的内容使其透明,并aspect = "iso"调用plot3d()以使其不重新调整。例如,

xyz <- matrix(rnorm(30), ncol=3)
dist <- apply(xyz, 1, function(pt) sqrt(sum((pt - xyz[1,])^2)))
radius <- 1
plot3d(xyz, col=c("black", ifelse(dist[-1] < radius, "green", "red")),
       aspect = "iso", size = 3)
spheres3d(xyz[1,,drop=FALSE], col="black", alpha = 0.2, radius=radius)

给出了

enter image description here

绿色点位于球体内部,红色点位于球体外部。