我一直在使用这两个软件包( gganimate和ggrepel )几天,我必须说它们在可视化方面非常有用。虽然,我想知道是否有办法将它们结合起来。
最后,我试图为一些社区(在法国)绘制工作人员的费用与每个社区(其中18个)的设备费用数量以及这种套利的演变之间的关系。 2011年和2015年。
所以,有趣的事情是使用 ggrepel 来将一个点与正确的社区以及 gganimate 联系起来,看看这些点如何在整个过程中发展时间。
以下是我的代码的一部分:
p <- ggplot(df) +
geom_point(aes(Equip, Staff, size=population, color=factor(Type), frame=Year)) +
scale_size(range = c(2,10)) +
geom_label_repel(aes(Equip, Staff, fill = factor(Type),
label = Name),
size=2.5,
fontface = 'bold',
color = 'white',
box.padding = unit(2.5, "lines"),
point.padding = unit(0.1, "lines"),
segment.color = 'grey50',
segment.size = 1,
max.iter = 20000, alpha = .7) +
facet_wrap(~other_variable, scales = "free")
gganimate(p,interval = 3,
ani.width = 1064,
ani.heigth = 768)
我的问题是 gganimate 仅更新每个帧(即年份)的点数,并打印所有标签,丢弃实际正在打印的帧。
例如,如果2011年城市 A 的坐标为:(100,200),2012年(150,200),则为将在两个年份的每个坐标处打印标签,而不是在2011年的第一个坐标处打印A,在2012年的第二个坐标处打印A.
有没有人能解决这个问题?
非常感谢。