如何从 R 中的 animate 函数中保存 GIF 图像?

Posted

技术标签:

【中文标题】如何从 R 中的 animate 函数中保存 GIF 图像?【英文标题】:How do I save a GIF image from the animate function in R? 【发布时间】:2019-07-10 23:07:10 【问题描述】:

我正在使用 R 中的 animate 函数成功地创建了我需要的动画,并且它完美地显示出来了。但是,我无法将输出(在下面的代码示例中称为 TodayMotion)保存在文件(例如 Gif89a)中,以便分发/存储动画。这听起来是一个简单的问题,但我一直无法解决它。

我尝试了多种解决方案,包括无法在我的 R 版本上加载的 ImageMagick 包。还有 save.gif 和 Magick 包的写入命令,它说它无法识别该文件。只是为了澄清一下,我尝试了 'magick::image_write(TodayMotion, path="magicksaveOption.gif")' 和 'anim_save("TodayMotion.gif", TodayMotion)' 都没有工作。

ggm <- ggmap(UK) +
geom_point(data = Origin1,
aes(x = Long, y = Lat,
colour = group),
size = 2, alpha = 0.8) +
transition_time(time) +
shadow_wake(wake_length = .1)


TodayMotion <<- animate(ggm, height = 1500, width = 1500, fps = 
20, duration = 20, start_pause = 10, end_pause = 20,  rewind = T)

PS。在 TodayMotion 环境中被描述为“gif_image 类”

我想在我想要的目录中保存一个保存的 gif(gif89a,因为它是动画的)。 (下图截取自屏幕)

【问题讨论】:

请您生成整个代码,以便您的示例可以被复制,好吗? 我怀疑您的完整代码相当复杂。更好的是生成一个简单的测试示例,使用简短的代码来说明您的问题。 代码相当复杂,并不是真正的问题,动画完美地工作并且完全按照它所说的那样工作。但是我剩下的是 TodayMotion 文件,但我无法保存它。就是这么简单,我就是想把它保存成一个可以发给别人的格式,想必是可以存储动画的gif。我已经尝试了几个小时,灵魂可能很明显,但我找不到。 在此处查看答案及其评论:***.com/questions/51440496/… 这仅适用于 gganimate,不适用于我尝试过的动画。不过还是谢谢。这是一个令人费解的问题,最初看起来很简单,您希望有一个自动解决方案,但我找不到。 【参考方案1】:

您可以右键单击查看器窗格 I Rstudio 并选择保存。 默认保存选项是 .gif

【讨论】:

是的,但我需要代码中的解决方案,因为这是一个较大程序的一部分,一个文件必须在一个固定的目录中结束。【参考方案2】:

最后,由 Stephane Laurent 提供的答案是 anim_save(DFCFileName, TodayMotion)。当没有其他工作时,这样做了。我会告诉你结果,但大小限制是 2MB,这是 19MB!您可以使用 TweenR 包进行插值制作一些出色的动画,然后制作动画。 TweenR 确实可以消除任何抖动并提供出色的效果。

【讨论】:

以上是关于如何从 R 中的 animate 函数中保存 GIF 图像?的主要内容,如果未能解决你的问题,请参考以下文章

如何将htmlTable从查看器导出到R中的word文档

如何从 CPP 中的基类继承构造函数?

如何在 R 中保存函数的结果而不返回它?

如何从表格中删除单元格标签?

在 R 中的函数中保存

R语言使用magick包的image_animate函数创建多张图片滚动播放的动图( Animating image frames)