是否可以在gganimate循环之间添加暂停?我知道我们可以用interval
设置帧之间的间隔,但有没有办法在循环回到第一帧之前暂停最后一帧?
是将最终帧的多个副本插入数据的最佳方法吗?
可以通过调整render
中的animate
选项来实现。使用自述文件中的示例,
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?
另一个帖子提供了一个工作解决方案:
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更改为更高的数字才能看到暂停。