【发布时间】:2020-08-01 12:26:19
【问题描述】:
我有一个用 ggplot 创建的条形图,我想对其进行动画处理;基本情节是...
我在网上对此进行了研究并创建了以下代码:-
这是一些 Reprex 数据...
Data <- as.data.frame(rbind(c("11 Mar'", "Male", "20-30"),
c("11 Mar'", "Male", "20-30"),
c("11 Mar'", "Female", "20-30"),
c("12 Mar'", "Female", "50-60"),
c("12 Mar'", "Female", "10-20"),
c("12 Mar'", "Male", "60-70"),
c("13 Mar'", "Female", "20-30"),
c("13 Mar'", "Female", "60-70"),
c("13 Mar'", "Male", "60-70"),
c("13 Mar'", "Male", "60-70"),
c("13 Mar'", "Female", "20-30"),
c("14 Mar'", "Female", "70-80"),
c("14 Mar'", "Female", "70-80"),
c("14 Mar'", "Male", "40-50")))
colnames(Data) <- c("Date", "Sex", "AgeGroup")
这是我对 ggplot 的呼吁……
ggplot(Data, aes(x = AgeGroup, fill = Sex, frame = Date, Cumulative = TRUE)) +
geom_bar(position = position_dodge2(preserve = "single")) +
scale_fill_manual(values = c("lightblue", "darkblue")) +
xlab("\nAge Group") + ylab("\nIndividuals") +
ggtitle("\nMarch - April 2020") +
scale_y_discrete(limits= c(2,4,6,8)) + theme_pc() +
transition_states(Date, transition_length = 4, state_length = 1) +
labs(title = 'Date: {closest_state}',
subtitle = "Age and Gender distribution",
caption = "data as of 0945 10 Apr 2020")
不幸的是,我没有得到想要的输出 - 数据没有累积显示 相反,绘图的每一帧都会刷新以仅显示一天的结果。我希望 geom_bar 总是会在几天内累积数据,但似乎没有 - 我什至有“累积 = TRUE” 在 ggplot 调用中,但结果仍然看起来像这样......
谁能指出我正确的方向??
【问题讨论】:
-
请将个人计数更新为样本数据,并添加 gganimate 代码。顺便说一句,您可以尝试使用年龄组和性别的每个组合的累积总和创建一个新变量,并以此进行绘图。
-
对不起,我不明白您所说的“将个人计数更新为样本数据”是什么意思...... gganimate 代码也附加到 golly 调用的末尾 - 从“transition_states(日期......”
-
对不起,我误解了您的数据集,好像它应该在每个横截面上都有计数。不,我意识到频率范围在 0 到 2 之间。
标签: r animation ggplot2 gganimate