"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 个彩色图:
第一种颜色-我的数据点
半径内第二个颜色点
第 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)
这给出了
绿点在球体内,红点在球体外。
我有包含 3 个维度的数据。
我计算了特定数据点半径内的最近邻(使用nn2
)
然后,我绘制了数据的 3d 图(使用 rgl
库中的 plot3d
):
plot3d(dfrm[1:3], col=rainbow(2)[dfrm$col], size...)
所以,我有 3 个彩色图:
第一种颜色-我的数据点
半径内第二个颜色点
第 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)
这给出了
绿点在球体内,红点在球体外。