在 R 中绘制 3D GIF

Posted

技术标签:

【中文标题】在 R 中绘制 3D GIF【英文标题】:Plotting 3D GIF in R 【发布时间】:2021-07-18 00:39:38 【问题描述】:

我正在使用 3 个向量 xyz ,每个向量的长度为 N(假设 N 是一个很大的自然数,比如 20000)。为了可视化这一点,我可以使用以下 R 代码轻松绘制:

library("plot3D")
lines3D(x, y, z, type = "l")

现在,我在想我们是否可以从矢量xyz 制作一个小的 3D 动画(即 3D GIF)。在 R 中可以吗?


注意:我以前在 R 中使用 ggplot2gganimatemagick 等包的帮助下完成了 2D GIF。但是,我很好奇是否相同可以对 3D 数据进行操作。提前致谢。

【问题讨论】:

我很确定存在基于“rgl”的动画机会,但 SO 不鼓励在没有数据且不努力搜索的情况下提出问题。也不鼓励推荐包裹。 【参考方案1】:

使用animation 包创建.gif 非常简单(注意它需要'ImageMagick' 或'GraphicsMagick' 才能运行)。安装后,你可以做这样的事情(我假设你想以不同的角度显示你的情节):

library(plot3D)
library(animation)
x <- runif(1000)
y <- x*2+runif(1000)
z <- sample(1:10,length(x),replace = T)*x/y

ani.options(interval=0.5,nmax=35)
saveGIF(for(t in seq(0,360,10))
lines3D(x, y, z, type = "l",theta=t)
, movie.name = "animation.gif")

【讨论】:

以上是关于在 R 中绘制 3D GIF的主要内容,如果未能解决你的问题,请参考以下文章

使用离散的 3D 点在 R 中绘制 3D 体积图

在 R 时间内为系列数据绘制 3D 曲面图

在 R 时间内为系列数据绘制 3D 曲面图

在 R 中,如何随时间(3D 或动画)绘制 x、y 值?

R语言使用plotly绘制3D散点图实战

Java 绘制 GIF