Я пытаюсь создать групповую диаграмму рассеяния, в которой точки появляются в разные моменты времени (основанные на переменной времени), и после появления всех точек определенной группы все они исчезают.Различные группы не начинаются в одну и ту же точку времени и не заканчиваются в одной и той же конечной точке, а также не имеют одинакового количества точек данных.
Я полагаю, это должна быть некоторая комбинация transition_time()
(в реальных данных используется метка фактического времени) exit_disappear()
и / или shadow_mark()
, но я не могу заставить это работать.
Я пробовал это, но это не дает нужные мне результаты.Мне, например, нужно, чтобы все группы А появлялись одна за другой, а затем исчезали после момента времени 15. И чтобы вся группа В начала появляться после момента времени 21, одна за другой, а затем исчезала после момента времени 45.
library(ggplot2)
library(gganimate)
library(tibble)
# data
x <- c(-15:-1, -5:19, 1:45, -10:4)
y <- x + rnorm(100, 0, 2) + c(rep(-10, 15), rep(20, 25), rep(-5, 45), rep(8, 15))
id <- c(rep("A", 15), rep("B", 25), rep("C", 45), rep("D", 15))
time <- c(1:15, 21:45, 1:45, 41:55)
tib <- tibble(x,y, id, time)
# does not disappear after one id is done
anim_tib1 <- ggplot(tib, aes(x = x, y = y, col = id, group = id))+
geom_point(size = 2)+
transition_time(time = time)+
exit_disappear()+
shadow_mark()
# this works, but now there is no trail
anim_tib2 <- ggplot(tib, aes(x = x, y = y, col = id, group = id))+
geom_point(size = 2)+
transition_components(time)+
exit_disappear()
# this almost yields the same result as the first try
anim_tib3 <- ggplot(tib, aes(x = x, y = y, col = id, group = id))+
geom_point(size = 2)+
transition_components(time)+
exit_disappear()+
shadow_mark()