gganimate创建重复的图像

时间:2017-02-13 04:32:15

标签: r ggplot2 ggmap gganimate

我有一个如下所示的数据框:

head(newnolarank)

    lon      lat week b
1 -90.06445 29.97121    1 9
2 -90.06704 29.96944    1 9
3 -90.07495 29.96567    1 9
4 -90.07448 29.96621    1 9
5 -90.16480 29.91240    1 9
6 -90.04797 29.94557    1 9

我的地图是从ggmap

中的get_map函数生成的
map <- get_map("New Orleans, LA", zoom=10, color="bw")

我使用geom_hex制作十六进制地图

   p <- ggmap(map)+
coord_cartesian()+
stat_binhex(data=newnolarank,aes(x=lon, y=lat, alpha=0.5, frame = as.factor(b), cumulative = FALSE))+
scale_fill_continuous(low="#ACD9F4",high="#EC008C")+
theme(text=element_text(family="Avenir"), 
axis.line=element_blank(), 
axis.ticks = element_blank(), 
axis.text = element_blank(), 
plot.title=element_text(hjust=0.5),
 axis.title=element_blank())+
 ggtitle("Number of Sign Ups")

然后使用gganimate制作一个gif。这是问题所在;即使累积设置为false,所得到的gif似乎也有旧图像,这会产生不希望的重叠十六进制效果,或者在奇数区域显示的六边形。

gganimate(p, "gif1.gif", title_frame = TRUE)

这是GIF:

您还可以在图例中看到叠加层。

奖金问题:如果有人能帮助我摆脱显示出来的alpha传奇,那也会很棒。

1 个答案:

答案 0 :(得分:0)

忘了在这里发布解决方案:原来数据集中有NAs,因此gganimate将这些添加到第一个图像和所有其他图像。基本上它是一个功能而不是一个bug,从周列中删除NA解决了这个问题。