我正在尝试制作一个动画情节,以显示随着时间的推移,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)
理想情况下,随着时间的推移,两条虚线会发生变化,但是,现在它们保持不变。有关如何解决此问题的任何想法?
答案 0 :(得分:1)
由于您尚未共享数据,因此我正在使用datasets::airquality
。这里的想法是,您需要将数据(此处为mean
)作为变量的平均值,因此gganimate
可以得出值和frame
之间的联系(即{ {1}}。
所以我要做的是按transition_time
分组(这里是月,对您来说将是frame
),然后用我所需变量的平均值对列进行变异。然后在yearSeason
中,我使用了该附加变量,而不是在geoms
中使用了mean
。看下面;
geom
由reprex package(v0.3.0)于2019-06-09创建