可以在gganimate循环之间添加暂停吗?我知道我们可以用interval设置帧之间的间隔,但是有没有办法在循环回到第一帧之前暂停在最后一帧上呢?
将最终帧的多个副本插入数据的最佳方法是什么?
发布于 2020-01-21 10:35:23
在gganimate的最新版本中,animate()函数有一个end_pause选项。所以你可以简单的做
animate(p, end_pause = 30)
以便在再次循环之前暂停例如30帧。
发布于 2018-09-15 04:47:45
可以通过调整animate中的render选项来实现。使用自述文件中的示例,
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?
发布于 2018-11-02 23:51:02
在另一篇文章中提供了一个有效的解决方案:
Any way to pause at specific frames/time points with transition_reveal in gganimate?
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()只需编辑以下代码行:
mutate(show_time = case_when(Day %in% c(10,20,31) ~ 10,
TRUE ~ 1),大致指的是:
mutate(show_time = case_when(Day %in% max(Day) ~ 10,
TRUE ~ 1),并相应地调整/删除group_by()调用。可能需要将~10更改为更高的数字才能看到暂停。
https://stackoverflow.com/questions/47681853
复制相似问题