scatter3d-基于第四个变量的彩色点

scatter3d-基于第四个变量的彩色点,r,3d,scatter3d,R,3d,Scatter3d,我想用scatter3d做一个3D绘图,但不知道如何根据第四个变量(这里是VAR4)的值给点上色。谁能帮帮我吗?如果通过添加这些颜色,我仍然保留默认版本中的褪色效果(3D绘图中更远的点显示为较浅的颜色),那将非常好。谢谢大家! df <- data.frame(VAR4=c(10,52,78,34,13,54), A=c(12, 8, 10, 7, 13, 15), B=c(4,3,2,1,7,5),

我想用scatter3d做一个3D绘图,但不知道如何根据第四个变量(这里是VAR4)的值给点上色。谁能帮帮我吗?如果通过添加这些颜色,我仍然保留默认版本中的褪色效果(3D绘图中更远的点显示为较浅的颜色),那将非常好。谢谢大家!

df <- data.frame(VAR4=c(10,52,78,34,13,54), 
                   A=c(12, 8, 10, 7, 13, 15), 
                   B=c(4,3,2,1,7,5), 
                   C=c(1,3,2,1,3,1))

library(rgl)
library(car)
scatter3d(A ~B + C,color=VAR4, data=df,  surface=F)
df您可以尝试以下方法:

library(rgl)
library(car)
# add as group the VAR4, making as factor
scatter3d(A ~B + C, groups = as.factor(df$VAR4), data=df,  surface=F)

但是,如果我能给你提个建议的话,使用
plotly
软件包会更漂亮、更好:

library(plotly)
# in this case we use VAR4 as continuous, you can put color = ~as.factor(VAR4) to have it as factors
plot_ly(df, x = ~A, y = ~B, z = ~C, color = ~VAR4) %>%
  add_markers() %>%
  layout(scene = list(xaxis = list(title = 'A'),
                      yaxis = list(title = 'B'),
                      zaxis = list(title = 'C')))