使用 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)
包 gganimate
创建 gif(来自
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)