在 3D 图上绘制多个数据集

数据挖掘 r 可视化
2022-02-18 20:04:36

我想在单个图(即相同的轴)上制作多个数据选择的 3D 散点图。

我知道在 2D 中,这可以通过使用 par() 函数来实现,如下所示:

情节(6:25,rnorm(20),type="b",xlim=c(1,30),ylim=c(-2.5,2.5),col=2)

标准杆(新 = T)

情节(rnorm(30),type="b",axes=F,col=3)

标准杆(新 = F)

(来源:http ://cran.r-project.org/doc/contrib/Lemon-kickstart/kr_addat.html )

我可以在 3D 绘图上做类似的事情,最好是交互式 3D 绘图,比如使用“rgl”包中的 plot3D 创建的绘图?

1个回答

你可以使用plot3Drgl图书馆。例如

library("plot3Drgl")
x <- c(1,2,3,4,5)
y <- c(6,7,8,9,10)
z <- c(11,12,13,14,15)
colors <- c(rep("red",3), rep("blue",2))
plot3d(x=x,y=y,z=z,col=colors)

或者您可以使用plotly

library("plotly")
x <- c(1,2,3,4,5)
y <- c(6,7,8,9,10)
z <- c(11,12,13,14,15)
colors <- c(rep("red",3), rep("blue",2))
df<-as.data.frame(cbind(x,y,z,colors))
colnames(df)<-c("eat", "pork", "chops", "colors")

p <- plot_ly(data=df, x=~eat, y=~pork, z=~chops, color =~colors, colors=c('#BF382A', '#0C4B8E')) %>% ## Like a pipe?
  add_markers() %>%
  layout(scene = list(xaxis = list(title = 'eat'),
                     yaxis = list(title = 'pork'),
                     zaxis = list(title = 'chops')))
htmlwidgets::saveWidget(as_widget(p), "index.html")

这会将输出保存为 html 文件。为了让它工作,你还需要安装 pandoc。在 CentOS/RedHat 上做yum install pandoc pandoc-citeproc. 在 Mac OSX 上,使用homebrew,执行brew install pandoc.