R 使用gganimate在两个时间序列条形图之间创建平滑过渡

R 使用gganimate在两个时间序列条形图之间创建平滑过渡,r,ggplot2,gganimate,R,Ggplot2,Gganimate,我试图用gganimate制作一个动画,从过去10年的犯罪数据开始。一旦动画开始,我想加上1970年的历史年份(当时犯罪率要高得多)。这将显示为带有自由轴的“缩小”。 到目前为止,我可以从2018年开始,按如下顺序向后添加年份: # Create dataset dat <- tibble(year = 1970:2018) dat$crime <- 100 * exp(-0.02*(dat$year-1970)) p <- ggplot(dat, aes(x=year,

我试图用gganimate制作一个动画,从过去10年的犯罪数据开始。一旦动画开始,我想加上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)
#创建数据集

dat使用自定义的
状态
变量对所需年份进行分组

资料
dat
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) +
    geom_col(
        aes(
            x = year, 
            y = crime
        )
    ) +
    # states depend on "time", not "year"
    transition_states(
        time, 
        transition_length = 4, 
        state_length = 2
    ) +
    view_follow() + 
    shadow_mark()

animate(p)