我正在尝试为 ggplot2 中的堆叠折线图设置动画。

这是我想要动画的情节:

这是生成类似图的代码:

#Data
mydata <- data.frame(year=rep(1:6, times=4),
                 activity=as.factor(rep(c("research","coursework","clinical work","teaching"), each=6)),
                 time=c(40, 35, 40, 60, 85, 90,
                        50, 40, 10, 0, 5, 0,
                        5, 20, 20, 40, 10, 10,
                        5, 5, 30, 0, 0, 0))

mydata$activity <- ordered(mydata$activity, levels = c("research","clinical work","coursework","teaching"))

labels <- data.frame(activity=c("research","coursework","clinical work","teaching"),
                 xaxis=c(5, 1.8, 2.5, 2.97),
                 yaxis=c(25, 70, 48, 90))

#Plot
ggplot(mydata, aes(x=year, y=time, fill=activity)) +
  geom_area(stat="smooth", span=.35, color="black") +
  theme(legend.position = "none") +
  geom_text(data=labels, aes(x=xaxis, y=yaxis, label=activity)) +
  ggtitle("Time in Different Activities by Year in Program") +
  ylab("Percentage of Time") +
  xlab("Year in Program")

我正在寻找第一个图像来显示所有轴和文本。第二次迭代,我想随着时间的推移,从左到右逐渐揭示“研究”堆叠线(包括颜色和边框)。第三次迭代,我想从左到右逐渐揭示“临床工作”的堆叠线。四是“课业”叠线。最后,“教学”堆叠线。

理想情况下,输出格式将非常流畅(没有锯齿状跳跃)并且与 PowerPoint 兼容。

最佳答案

很抱歉引入非程序员解决方案,但我会简单地为每次迭代分别生成图,将它们放在电源点(一张幻灯片上的一个图),并使用一些奇特的幻灯片过渡效果(我在你的例如,它看起来不错)。

如果您决定寻找基于 R 的解决方案,您可以查看 animate 包(参见战略僵尸模拟示例 here )。

关于r - R中的动画ggplot2堆积折线图,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28029471/

10-12 17:24
查看更多