gganimate组合柱状图与折线图生成逐年度动画报错如何解决
报错原因
你遇到的报错是因为gganimate处理线条、路径类几何元素的过渡动画时,需要额外依赖transformr包完成线条的帧间补间计算,该包不会随gganimate默认安装,所以触发报错。
解决方法
- 首先安装并加载
transformr包
- 安装代码:
install.packages("transformr") - 加载时在原有代码的库引用部分增加
library(transformr)即可直接解决报错。
- 若要进一步优化两个图层的同步动画效果,可调整过渡参数让年度切换更顺滑,修正后的完整可运行代码如下:
library(ggplot2) library(tidyverse) library(gganimate) library(transformr) # 新增依赖加载 set.seed(321) year <- 2001:2021 value <- runif(n = length(year))*100 %>% round(digits = 2) df <- data.frame(year, value) %>% mutate(cumsum = cumsum(value)) p <- df %>% ggplot(aes(x = year)) + geom_col(aes(y = value), fill = "#2c7fb8") + geom_line(aes(y = cumsum), color = "#fc8d59", linewidth = 1) + # 调整过渡参数,设置状态停留时间、过渡时间,保证两图层同步切换 transition_states(year, transition_length = 0.2, state_length = 0.5) + shadow_mark() # 保留之前年度的所有图形元素 # 查看动画 animate(p, nframes = 100, fps = 10) # 可通过以下代码保存动画为gif # anim_save("年度动画.gif", animation = last_animation())
内容的提问来源于stack exchange,提问作者Lee Jim
相关产品推荐
相关产品推荐

