rgl 3D 散点图 - 从第 4 维控制球体的大小(气泡图)

rgl 3D scatterplot - controlling size of spheres from 4th dimension (bubble plot)

我正在使用 R 中的 rgl 包绘制 3D 散点图,不同系列有多种颜色。我想知道是否有一种方法可以通过控制球体的大小来绘制第四维。

我知道可以使用 plotly ("bubble plot") : https://plot.ly/r/3d-scatter-plots/,但是在处理大量数据点时 Plotly 开始闪烁。使用 Rgl 可以达到相同的结果吗?

set.seed(101)
dd <- data.frame(x=rnorm(100),y=rnorm(100),z=rnorm(100),
                 c=rnorm(100),s=rnorm(100))

缩放函数(我做了微调以将值严格保持在 (0,1) 范围内,不知道是否真的有必要):

ss <- function(x) scale(x,center=min(x)-0.01,scale=diff(range(x))+0.02)
library(rgl)

定义颜色(可能有更好的方法...)

cvec <- apply(colorRamp(c("red","blue"))(ss(dd$c))/255,1,
              function(x) rgb(x[1],x[2],x[3]))

图片(需要type="s"来获得球体)

with(dd,plot3d(x,y,z,type="s",radius=ss(s), col=cvec))