在 R 中绘制 ellipse3d?
Plot ellipse3d in R plotly?
包 rgl
包含一个非常有用的函数 ellipse3d
,它可以 return 一个椭圆体,它可以覆盖 3D 中 95% 的点。然后这个对象可以在rgl::plot3d
中使用来绘制出来。我的问题是,是否可以将 ellipse3d
的输出转换为可以通过像 plotly 这样的 js 绘图包绘制的东西?
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)
那我怎样才能通过 plotly 绘制椭圆体呢?
您可以从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)
包 rgl
包含一个非常有用的函数 ellipse3d
,它可以 return 一个椭圆体,它可以覆盖 3D 中 95% 的点。然后这个对象可以在rgl::plot3d
中使用来绘制出来。我的问题是,是否可以将 ellipse3d
的输出转换为可以通过像 plotly 这样的 js 绘图包绘制的东西?
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)
那我怎样才能通过 plotly 绘制椭圆体呢?
您可以从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)