我正尝试用从过去十年犯罪数据开始的具有gganimate的动画制作。动画一旦开始,我想补充一下追溯到1970年(犯罪率高得多)的历史年份。这将显示为带有自由轴的“缩小”。 到目前为止,我可以从2018年开始,像这样按顺序向后添加年份:
# Create dataset
dat <- tibble(year = 1970:2018)
dat$crime <- 100 * exp(-0.02*(dat$year-1970))
p <- ggplot(dat, aes(x=year, y = crime)) +
geom_bar(stat = "identity") +
transition_states(-year, transition_length = 4, state_length = 2) +
view_follow() + shadow_mark()
animate(p)
在扩展到过去30-40年之前,我很难从10年的历史情节(而不是仅仅一年)开始。任何帮助将不胜感激!
答案 0 :(得分:0)
使用自定义state
变量将所需年份分组。
dat <- tibble(year = 1970:2018)
dat$crime <- 100 * exp(-0.02*(dat$year-1970))
# state variable called "time" for grouping
dat$time <- c(40:2, rep(1, 10))
p <- ggplot(dat, aes(x = year, y = crime)) +
geom_col() +
# states depend on "time", not "year"
transition_states(time, transition_length = 4, state_length = 2) +
view_follow() + shadow_mark()
animate(p)
PS:这是一个非常简洁,格式合理且可复制的第一个问题!继续努力!