我想制作一个分组条形图的动画,使得每个系列依次绘制并保持可见。在下面的示例图中,我希望首先绘制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
会绘制四个单独的条形图,逐个出现。我真的很想能够在单个绘图区域上绘制一个分组的条形图,逐系列显示。 - grdn