首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在gganimate循环之间暂停

在gganimate循环之间暂停
EN

Stack Overflow用户
提问于 2017-12-07 03:14:20
回答 3查看 5.7K关注 0票数 17

可以在gganimate循环之间添加暂停吗?我知道我们可以用interval设置帧之间的间隔,但是有没有办法在循环回到第一帧之前暂停在最后一帧上呢?

将最终帧的多个副本插入数据的最佳方法是什么?

EN

回答 3

Stack Overflow用户

发布于 2020-01-21 10:35:23

gganimate的最新版本中,animate()函数有一个end_pause选项。所以你可以简单的做

animate(p, end_pause = 30)

以便在再次循环之前暂停例如30帧。

票数 12
EN

Stack Overflow用户

发布于 2018-09-15 04:47:45

可以通过调整animate中的render选项来实现。使用自述文件中的示例,

代码语言:javascript
复制
p <- ggplot(airquality, aes(Day, Temp)) + 
  geom_line(size = 2, colour = 'steelblue') + 
  transition_states(Month, 4, 1) + 
  shadow_mark(size = 1, colour = 'grey')
animate(p, renderer = gifski_renderer(loop = F))

请注意,这可以防止动画循环,而不是在循环之间添加暂停。要在循环之间添加暂停,此链接应该会有所帮助,如Alan的回答中所建议的:

Any way to pause at specific frames/time points with transition_reveal in gganimate?

票数 10
EN

Stack Overflow用户

发布于 2018-11-02 23:51:02

在另一篇文章中提供了一个有效的解决方案:

Any way to pause at specific frames/time points with transition_reveal in gganimate?

代码语言:javascript
复制
airq_pause <- airq %>%
  mutate(show_time = case_when(Day %in% c(10,20,31) ~ 10,
                               TRUE                 ~ 1)) %>%
  # uncount is a tidyr function which copies each line 'n' times
  uncount(show_time) %>%
  group_by(Month) %>%
  mutate(reveal_time = row_number()) %>%
  ungroup()

只需编辑以下代码行:

代码语言:javascript
复制
mutate(show_time = case_when(Day %in% c(10,20,31) ~ 10,
                                 TRUE             ~ 1),

大致指的是:

代码语言:javascript
复制
mutate(show_time = case_when(Day %in% max(Day) ~ 10,
                                 TRUE          ~ 1),

并相应地调整/删除group_by()调用。可能需要将~10更改为更高的数字才能看到暂停。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47681853

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档