更新:抱歉,我忘记添加矢量:
time=1:100
value = 1:67
fill = rep(max(value), 100-max(value))
我想做一个动画堆叠酒吧,这里是我的例子:
library(tidyverse)
library(gganimate)
#example data frame
df <- tibble(time = time,
value = c(value, fill),
x = "A") %>%
mutate(fill_color = "gold") %>%
mutate(gold_nr = value) %>%
mutate(blue_nr = rev(gold_nr)) %>%
pivot_longer(c(gold_nr, blue_nr),
names_to = "color_group",
values_to = "value_group")
# the code:
p <- df %>%
ggplot(aes("", value_group, fill=color_group)) +
geom_col(width = 0.3, position = position_fill())+
scale_fill_manual(values = c("gold", "steelblue"))+
theme_minimal()+
# theme(legend.position="none")+
transition_manual(value)+
coord_flip()
animate(p, fps=24, renderer = gifski_renderer(loop = FALSE))
**我的问题是:为什么条形图不停留在67,而是跳过75?**我想我必须用另一种方式组织数据?
1条答案
按热度按时间ars1skjm1#
您应该使用时间列来对帧进行分组。
现在,该图正确显示了上一时间范围内的比例。
请注意,您的颜色被翻转。