"Ball" 覆盖 3d 图中的一组

"Ball" cover for one group in 3d plot

我有包含 3 个维度的数据。

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

然后,我绘制了数据的 3d 图(使用 rgl 库中的 plot3d):

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

所以,我有 3 个彩色图:

有没有办法用透明 "ball" 覆盖我的第一个和第二个颜色组?

使用spheres3d()函数绘制一个球体。您需要指定中心(大概是您的数据点)和半径。使用 col = "black", alpha = 0.2 之类的东西使其透明,并在 plot3d() 调用中使用 aspect = "iso" 这样它就不会重新缩放。例如,

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)

这给出了

绿点在球体内,红点在球体外。