使用 gganimate 导出 gif

Using gganimate to export gif

gganimate 创建 gif(来自 的 MWE 代码):

    library(ggplot2)
    #devtools::install_github('thomasp85/gganimate')
    library(gganimate)

    p <- ggplot(mtcars, aes(factor(cyl), mpg)) + 
            geom_boxplot() + 
            # Here comes the gganimate code
            transition_states(
                    gear,
                    transition_length = 2,
                    state_length = 1
            ) +
            enter_fade() + 
            exit_shrink() +
            ease_aes('sine-in-out')

现在如何导出这个gif?在 gganimate 的先前(现已存档)版本中,这很简单:

    gganimate(p, "output.gif")

但是,我在当前的 gganimate 包中找不到等效的函数。


注意:这个问题似乎与我从中获取 MWE 代码的问题完全相同。但是,gganimate 已更新,在新版本中,在查看器窗格中显示动画与导出动画似乎是不同的问题。

你可以这样做:

anim <- animate(p)
magick::image_write(anim, path="myanimation.gif")

gganimate 1.0.6 和 gifski 0.8.6

根据@Ronak Shah 的建议,我使用 gganimate 包中的 anim_save() 添加了更新的答案 - 因为它使用 gifski now 来呈现 .gif 输出.

library(ggplot2)
library(gganimate)
# install.package("gifski") #if not already installed

p <- ggplot(mtcars, aes(factor(cyl), mpg)) + 
  geom_boxplot() + 
  transition_states(
    gear,
    transition_length = 2,
    state_length = 1
  ) +
  enter_fade() + 
  exit_shrink() +
  ease_aes('sine-in-out')

anim_save("filenamehere.gif", p)