【问题标题】:Plot multiple 3D images in a single plot window with plot3d使用 plot3d 在单个绘图窗口中绘制多个 3D 图像
【发布时间】:2015-08-06 20:20:00
【问题描述】:

当我使用 rgl 包中的 plot3d 绘制多个 3D 图像时,图像会单独显示。我想在一个绘图中显示它们,例如使用 par(mfrow=c(2, 2)) 在单个绘图窗口中显示四个 2D 图像时。

这可能吗?

【问题讨论】:

  • 查看plot3D 包(例如?plotdev、?scatter3D 等处的示例)。不过,它们不会像rgl 的plot3d 那样具有交互性(可拖动)。
  • 谢谢@jbaums,我试过了,但这不是我想要的。
  • 我有点不清楚你到底在追求什么。您是否希望能够旋转/等。用鼠标绘制地块,还是对特定视图的快照感到满意?如果是后者,plot3D包不能实现哪些元素?
  • 不是使用 plot3D 包,我想使用 rgl 包的 plot3d 在一个图中显示多个 3d 图像。 @jbaums
  • 我仍然不确定你想要什么。 “3d 图像”是指您希望它们具有交互性(即能够用鼠标旋转等)吗?如果你编辑这个问题并且非常清楚你想要达到的目标,这个问题会得到更多的关注。

标签: r plot rgl


【解决方案1】:

layout3d 命令可能很有用。也许这段代码可以提供帮助:

 shapes <- list(Tetrahedron = tetrahedron3d(), Cube = cube3d(), Octahedron =  octahedron3d(),
 Icosahedron = icosahedron3d(), Dodecahedron = dodecahedron3d(),
 Cuboctahedron = cuboctahedron3d())
 col <- rainbow(6)
 open3d()

 mat <- matrix(1:4, 2, 2)
 mat <- rbind(mat, mat + 4, mat + 8)
 layout3d(mat, height = rep(c(3, 1), 3), sharedMouse = TRUE)
 for (i in 1:6) {
 next3d()
 plot3d(shapes[[i]], col = col[i])
 next3d()
 text3d(0, 0, 0, names(shapes)[i])
 }

要同时禁用所有实体的旋转,只需设置 sharedMouse = FALSE。

【讨论】:

  • 谢谢,马特乌斯。这就是我想要找到的。
猜你喜欢
  • 1970-01-01
  • 2017-01-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-17
  • 1970-01-01
  • 2015-10-10
相关资源
最近更新 更多