我正在尝试用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
知道如何解决这个错误吗?
答案 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)