Как сделать shadow_mark без интерполяции точек?
Как я могу создать анимацию, которая 1. добавляет новые точки на график во время, пропорциональное времени измерения, и 2. постепенно затухает с течением времени?
Я подумал, что, возможно, смогу добиться этого с помощью следующего кода:
library(tidyverse)
library(gganimate)
set.seed(1)
ex =
expand.grid(x = seq(0, 1, 0.2),
y = seq(0, 1, 0.2),
t = seq(0, 10, 1)) %>%
as_tibble() %>%
mutate(z = rnorm(x, mean = t, sd = 0.2))
ggplot(data = ex,
mapping = aes(x, y, color = z)) +
geom_jitter(position = position_jitter(width = 0.02, height = 0.02)) +
transition_time(t) +
scale_color_viridis_c() +
shadow_mark(alpha = 0.4, size = 1)
Однако этот график интерполирует положение точки по времени. Хотя это имеет смысл сделать для воспроизведения гэминдера, похоже, это не тот эффект, который я ищу: я хочу того же, но без движущихся шаров. Я просто хочу, чтобы они появились, а затем исчезли. Но мне интересно, есть ли хороший способ сделать это с помощью грамматики?
1 ответ
Решение
Наблюдая за выступлением Томаса " Грамматика визуализации", я увидел в его примере с ggraph, что да, он имел в виду мою проблему при формулировке грамматики.
ggplot(data = ex,
mapping = aes(x, y, color = z)) +
geom_jitter(position = position_jitter(width = 0.02, height = 0.02)) +
transition_events(start = t,
enter_length = 1,
exit_length = 4) +
scale_color_viridis_c() +
enter_fade() +
exit_fade()