R制作动画的本质,是将一系列的图片,合成一张gif格式的图片
可以举个简单的例子:
png(file="example%02d.png", width=480, height=480)
par(bg="grey")
for (i in c(10:1, "G0!")){
plot.new()
text(.5, .5, i, cex = 6 )
}
dev.off()
system("convert -delay 20 *.png animated_count_down.gif")
file.remove(list.files(pattern=".png"))
上面的代码,首先绘制了11张png格式的图片,之后,通过调用系统 ImageMagick工具包,将png格式转换成gif格式的图片
除此之外,也有工具包可以直接依据ggplot2生成的对象,构建动态图,比如gganimate
# Get data:
library(gapminder)
# Charge libraries:
library(ggplot2)
#devtools::install_github("dgrtwo/gganimate")
library(gganimate)
# Make a ggplot, but add frame=year: one image per year
p<- ggplot(gapminder, aes(gdpPercap, lifeExp, size = pop, color = continent, frame = year)) +
geom_point() +
scale_x_log10() +
theme_bw()
# Make the animation!ç
gganimate(p)
# Save it to Gif
gganimate(p, "271_gganimate.gif")
需要注意的是,gganimate工具包,在制作动画过程中,依然需要调用ImageMagick软件。