在R中绘制ellipse3d?

时间:2017-02-09 16:08:45

标签: r plotly rgl r-plotly

rgl包含一个非常有用的函数ellipse3d,它可以返回一个椭球,覆盖3D中95%的点数。然后可以在rgl::plot3d中使用此对象来绘制它。我的问题是,是否可以将ellipse3d的输出转换为可以通过js绘制包绘制的内容,如plotly?

library(rgl)
dt <- cbind(x = rnorm(100), y = rnorm(100), z = rnorm(100))
ellipse <- ellipse3d(cov(dt))
plot3d(dt)
plot3d(ellipse, add = T, color = "red", alpha = 0.5)

那么我可以做些什么来绘制椭圆体?

1 个答案:

答案 0 :(得分:4)

您可以从ellipse$vb中提取椭圆的坐标。然后绘制这些。类似的东西:

p <- plot_ly() %>% 
  add_trace(type = 'scatter3d', size = 1, 
     x = ellipse$vb[1,], y = ellipse$vb[2,], z = ellipse$vb[3,], 
     opacity=0.01) %>% 
  add_trace(data=dt, type = 'scatter3d', x=~x, y=~y, z=~z)

enter image description here