使多个几何图形在ggplot中动画

时间:2019-06-08 21:06:02

标签: r ggplot2 gganimate

我正在尝试制作一个动画情节,以显示随着时间的推移,NBA球队三分命中率和助攻率的变化。当我的图中的点正确过渡时,我尝试添加垂直和水平均值线,但是对于整体平均值而言,它保持不变,而不是逐年变化。

p<-ggplot(dataBREFPerPossTeams, aes(astPerPossTeam,fg3aPerPossTeam,col=ptsPerPossTeam))+
  geom_point()+
  scale_color_gradient(low='yellow',high='red')+
  theme_classic()+
  xlab("Assists Per 100 Possessions")+
  ylab("Threes Attempted Per 100 Possessions")+labs(color="Points Per 100 Possessions")+
  geom_hline(aes(yintercept = mean(fg3aPerPossTeam)), color='blue',linetype='dashed')+
  geom_vline(aes(xintercept = mean(astPerPossTeam)), color='blue',linetype='dashed')

anim<-p+transition_time(as.integer(yearSeason))+labs(title='Year: {frame_time}')

animate(anim, nframes=300)

Example of GIF

理想情况下,随着时间的推移,两条虚线会发生变化,但是,现在它们保持不变。有关如何解决此问题的任何想法?

1 个答案:

答案 0 :(得分:1)

由于您尚未共享数据,因此我正在使用datasets::airquality。这里的想法是,您需要将数据(此处为mean)作为变量的平均值,因此gganimate可以得出值和frame之间的联系(即{ {1}}。

所以我要做的是按transition_time分组(这里是月,对您来说将是frame),然后用我所需变量的平均值对列进行变异。然后在yearSeason中,我使用了该附加变量,而不是在geoms中使用了mean。看下面;

geom

reprex package(v0.3.0)于2019-06-09创建

相关问题