在gganimate中以不同的速度显示不同的时间元素
Display different time elements at different speeds in gganimate
使用此答案中的代码,,作为 MWE,假设我们有这个 gganimate:
library(ggplot2)
library(gganimate)
a <- ggplot(airquality, aes(Day, Temp,
group = interaction(Month, Day))) +
geom_point(color = 'red', size = 1) +
transition_time(Month) +
shadow_mark(colour = 'black', size = 0.75) +
enter_fade()
animate(a, nframes = 100)
或
animate(a, fps=5)
是否可以控制每个月(时间元素)的速度?例如,显示第 5 个月非常快,...,第 9 个月非常慢。
这是我的初步尝试,制作了一个辅助列,可以用作我们的 transition_time
来展示我们如何拥有不同的时间步长但需要标签。
您以后可以花更多时间来制作更好的 *timestep
专栏,它更复杂并且能准确满足您的需求。
这里的主要idea/point是我们可以在frame_time
上使用函数来根据需要获取标签,而transition_time
可以进行操作
library(ggplot2)
library(gganimate)
library(dplyr)
g <- airquality %>%
group_by(Month) %>%
mutate(timestep = if_else(Month==5, ((1:n())-1)/2 + Month, 15 + Month)) %>%
ggplot(aes(Day, Temp, group = interaction(Month, Day))) +
geom_point(color = 'red', size = 1) +
transition_time(timestep) +
shadow_mark(colour = 'black', size = 0.75) +
enter_fade() +
labs(title = 'Month: {if_else(frame_time<21,5, ceiling(frame_time-15))}')
animate(g, nframes = 100)
由 reprex package (v0.3.0)
于 2019-06-02 创建
使用此答案中的代码,
library(ggplot2)
library(gganimate)
a <- ggplot(airquality, aes(Day, Temp,
group = interaction(Month, Day))) +
geom_point(color = 'red', size = 1) +
transition_time(Month) +
shadow_mark(colour = 'black', size = 0.75) +
enter_fade()
animate(a, nframes = 100)
或
animate(a, fps=5)
是否可以控制每个月(时间元素)的速度?例如,显示第 5 个月非常快,...,第 9 个月非常慢。
这是我的初步尝试,制作了一个辅助列,可以用作我们的 transition_time
来展示我们如何拥有不同的时间步长但需要标签。
您以后可以花更多时间来制作更好的 *timestep
专栏,它更复杂并且能准确满足您的需求。
这里的主要idea/point是我们可以在frame_time
上使用函数来根据需要获取标签,而transition_time
可以进行操作
library(ggplot2)
library(gganimate)
library(dplyr)
g <- airquality %>%
group_by(Month) %>%
mutate(timestep = if_else(Month==5, ((1:n())-1)/2 + Month, 15 + Month)) %>%
ggplot(aes(Day, Temp, group = interaction(Month, Day))) +
geom_point(color = 'red', size = 1) +
transition_time(timestep) +
shadow_mark(colour = 'black', size = 0.75) +
enter_fade() +
labs(title = 'Month: {if_else(frame_time<21,5, ceiling(frame_time-15))}')
animate(g, nframes = 100)
由 reprex package (v0.3.0)
于 2019-06-02 创建