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))
我正在使用 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))