【发布时间】:2019-12-27 04:38:51
【问题描述】:
我想为分组条形图制作动画,这样每个系列依次绘制,然后保持可见。在下面的示例图中,我希望先绘制 id = 1 的条形图,然后依次绘制 id = 2、id = 3、id = 4 的条形图。
df <- data.frame(id = factor(c(1:4)),
var1 = c(0, 20,60, 80),
var2 = c(18, 64, 91, 100),
var3 = c(8, 73, 100, 100),
var4 = c(18, 48, 67, 85))
df_melt <- melt(df, id.var = "id")
df_melt <- df_melt %>% mutate(show_time = 1, reveal_time = cumsum(show_time))
ggplot(data = df_melt, aes(x = variable, y = value, fill = id)) +
geom_bar(stat = "identity", position = "dodge")
我已经能够使用 transition_reveal 生成动画线图,如下所述:https://www.datanovia.com/en/blog/gganimate-how-to-create-plots-with-beautiful-animation-in-r/
我曾尝试使用 transition_reveal 和 transition_states(单独和组合)来实现我的目标,但到目前为止都没有成功。例如:transition_states(id)。
我也尝试在我的数据中添加一个reveal_time 列并使用transition_reveal(reveal_time) 无济于事。
我生成的所有动画都将 id = 2 的值绘制在 id = 1 的顶部而不是侧面。因此,最后一帧是一个有四个条的条形图,而不是四组,每组四个。
任何帮助将不胜感激 - 谢谢!
【问题讨论】:
-
嗨 - 我的理解是
facet_wrap将绘制四个单独的条形图,这些条形图会一一出现。我真的很希望能够绘制一个分组条形图,在单个绘图区域上逐系列显示。