首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否有一个转换函数来保留旧的条块并添加新的条块?Transition_reveal只是移动了单数条

是否有一个转换函数来保留旧的条块并添加新的条块?Transition_reveal只是移动了单数条
EN

Stack Overflow用户
提问于 2021-01-12 13:04:45
回答 1查看 116关注 0票数 0

我正在尝试这样做,这样我就可以在R中将条形图逐个添加到条形图中。我知道有一个名为transition_layers的函数,但在我的一生中一直无法使用它。在下面的可重复示例中,我让条形图随着时间的推移而移动,但我想要的是随着时间的推移一个接一个地添加新的条形图,并让每个较旧的条形图保持不变。

库:

代码语言:javascript
复制
library(magrittr)
library(broom)
library(purrr)
library(gganimate)
library(gifski)
library(ggthemes)
library(png)
library(jpeg)
library(ggimage)
library(grid)

Cost <- c(1, 2, 4)
Year <- c(2016, 2017, 2018)


example <- data.frame(Year, Cost)
example_bar <-ggplot(data = example, mapping = aes(Year))+
  geom_bar(aes(weight = Cost))+
  theme_stata()+
  transition_reveal(Year)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-01-13 05:14:16

您需要通过在geom_col中设置group=Year来显式地告诉gganimate x轴上的每一列都在不同的组中(我将geom_bar更改为geom_col,因为我认为它更直观,但这基本上是一样的)。否则,gganimate会将它们全部视为同一组,并且该列将沿x轴滑动。对于其他类型的动画,我以前也遇到过这种情况。显式设置group参数通常是个好主意。

代码语言:javascript
复制
ggplot(data = example)+
  geom_col(aes(x=Year, y = Cost, group=Year)) +
  transition_reveal(Year)
anim_save(filename = 'gif1.gif', anim1, nframes=30, fps=10, end_pause=5)

但是,我无法使用transition_reveal设置转换时间和配置新列的显示方式。动画看起来很奇怪,每一列都在另一列之前停留了很长一段时间。我可以用animate/anim_save把它做得更好一点……

因此,另一种解决方案是通过保留“过去”行来更改数据框,使用当前年份创建一个新列,并使用transition_states

代码语言:javascript
复制
library(dplyr)

df.2 <- plyr::ldply(.data= example$Year, 
                    .fun = {function(x){
                      example %>% dplyr::filter(Year <= x) %>%
                        dplyr::mutate(frame=x)}})

# add row with data for dummy empty frame
df.2 <- rbind(data.frame(Year=2016, Cost=0, frame=2015), df.2)

anim2 <- ggplot(data = df.2) +
  geom_col(aes(x=Year, y = Cost, group=Year)) + 
  transition_states(frame, transition_length = 2, state_length = 1, wrap=FALSE) +
  enter_fade() + enter_grow()

anim_save(filename = 'gif2.gif', anim2)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65678281

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档