R语言 animate.default()中出错:不支持gg对象的动画

cu6pst1q  于 2023-03-27  发布在  其他
关注(0)|答案(2)|浏览(201)

运行以下命令时出现错误消息Error in animate.default() : animation of gg objects not supported(来自教程here

library(ggplot2)
library(gganimate)
library(gapminder)
theme_set(theme_bw())  # pre-set the bw theme.

g <- ggplot(gapminder, aes(gdpPercap, lifeExp, size = pop, frame = year)) +
  geom_point() +
  geom_smooth(aes(group = year), 
              method = "lm", 
              show.legend = FALSE) +
  facet_wrap(~continent, scales = "free") +
  scale_x_log10()  # convert to log scale

animate(g, interval=0.2)

如何渲染动画?

o2gm4chl

o2gm4chl1#

我相信这可能与较新版本的gganimatechange in API有关。
这是gganimate包的第二次迭代。第一次迭代由大卫罗宾逊开发,有一个非常不同的API,并且依赖于在geom_*()调用中指定aes()块内的动画帧成员。这种方法很容易掌握,但本质上功能有限,因此被放弃了更全面的语法。
为旧API编写的代码将无法在此gganimate版本中使用,并且将来不会对其提供支持。如果您希望继续使用旧API,请避免升级gganimate。如果您已经升级并希望降级,则旧API的最新版本可以作为GitHub版本提供。
如果你想使用旧的API,可以使用here。如果你正在使用或计划使用版本〉1.0.0,那么就不会像以前那样在aes()中使用frame。要获得相同的示例功能,请尝试:

ggplot(gapminder, aes(gdpPercap, lifeExp, size = pop)) +
  geom_point() +
  geom_smooth(aes(group = year), 
              method = "lm", 
              show.legend = FALSE) +
  facet_wrap(~continent, scales = "free") +
  scale_x_log10() +
  transition_manual(year)
wz1wpwve

wz1wpwve2#

我也遇到了同样的问题,使用了同样的数据集。我所做的就是在代码中添加以下内容:

gapminder = data.frame(gapminder)

animate函数运行良好。下面是动画情节代码:

p1 <- ggplot(gapminder, aes(gdpPercap, lifeExp, size = pop, colour = country)) +
  geom_point(alpha = 0.7, show.legend = FALSE) +
  scale_colour_manual(values = country_colors) +
  scale_size(range = c(2, 12)) +
  scale_x_log10() +
  facet_wrap(~continent) +
  labs(title = 'Year: {frame_time}', x = 'GDP per capita', y = 'Life expectancy') +
  transition_time(year) +
  ease_aes('linear')

#set_config( config( ssl_verifypeer = 0L ) )
#devtools::install_github("dgrtwo/gganimate")

animate(p1)

相关问题