带有极坐标的动画图

时间:2017-12-17 16:49:53

标签: r ggplot2 gganimate

我正在尝试用ggplot2创建一个动画饼图。

我的数据有点复杂,但这是一个简化的例子:

ex = data.frame(cat=c("cat1","cat2","cat1","cat2","cat1","cat2"), f = c(70,30,60,40,50,50), t=c(1,1,2,2,3,3))
ex$t = factor(ex$t)

p = ggplot(ex, aes(x="", y=f, fill=cat, frame=t))+
  geom_bar(width = 1, stat = "identity") +
  coord_polar("y", start=0) 

gganimate(p, "ex.gif", interval=1)

如果我显示p,似乎没问题:simple png

但是gif不行:gif

知道如何解决这个错误吗?

1 个答案:

答案 0 :(得分:1)

生成的.gif对我来说是正确的。每个帧都使用单独的数据生成。也许你正在寻找逐步生成饼图。您应该使用cumulative = TRUE来构建累积的帧。

代码应更改为:

p = ggplot(ex, aes(x="", y=f, fill=cat, frame=t, cumulative = TRUE))+
  geom_bar(width = 1, stat = "identity") +
  coord_polar("y", start=0)