Как следует из названия, я хотел бы анимировать более двух наборов данных.
Первый, довольно простой:
dots <- tribble(
~x, ~y, ~time,
1, 1, 1,
1, 2, 2,
2, 2, 3,
2, 1, 4,
1, 1, 5
)
anim <- ggplot(data = dots, mapping = aes(x, y)) +
geom_point() +
transition_time(time) +
ggtitle("Frame: {frame_time}")
anim
Это производит следующую захватывающую анимацию:
Как вы можете видеть, точка движется в соответствии с временным измерением в таблице dots
, мощность которой равна 5. Я бы хотел, чтобы поле, которое появляется, когда time == 2
и когда time == 4
.
Если я изменю код, я могу заставить поля появляться статически:
boxes <- tribble(
~x, ~y, ~id, ~timeb,
0.9, 1.9, 1, 2,
1.1, 1.9, 1, 2,
1.1, 2.1, 1, 2,
0.9, 2.1, 1, 2,
0.9, 1.9, 1, 2,
1.9, 0.9, 2, 4,
2.1, 0.9, 2, 4,
2.1, 1.1, 2, 4,
1.9, 1.1, 2, 4,
1.9, 0.9, 2, 4
)
anim <- ggplot(data = dots, mapping = aes(x, y)) +
geom_point() +
transition_time(time) +
ggtitle("Frame: {frame_time}") +
geom_polygon(data = boxes %>% filter(id == 1), mapping = aes(x, y), fill = NA, colour = "black") +
geom_polygon(data = boxes %>% filter(id == 2), mapping = aes(x, y), fill = NA, colour = "black")
anim
, который производит эту анимацию:
Итак, по сути, я хочу, чтобы окно появлялось, когда точка приближается.
Я бы не хотел, чтобы окна просто fla sh, я бы хотел, чтобы они появлялись и исчезали, что-то вроде:
, которые я произвел следующим образом:
anim_2 <- ggplot(data = boxes, mapping = aes(x, y, group = id)) +
geom_polygon(fill = NA, colour = "black") +
transition_states(id) +
enter_fade() +
exit_fade()
anim_2
Я надеюсь, что это имеет смысл (и что у кого-то есть хорошая идея для этого:)