Как сделать shadow_mark без интерполяции точек? - PullRequest
0 голосов
/ 07 декабря 2018

Как создать анимацию, которая 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)

generated animation

Однако этот график интерполирует положение точки по времени.Хотя это имеет смысл сделать для воспроизведения гэминдера, похоже, это не тот эффект, который я ищу: я хочу того же, но без движущихся шаров.Я просто хочу, чтобы они появились, а затем исчезли.Но мне интересно, есть ли хороший способ сделать это с помощью грамматики?

1 Ответ

0 голосов
/ 10 декабря 2018

Наблюдая за выступлением Томаса по Грамматика визуализации Я видел в его примере с графиком, что да, он имел в виду мою проблему при формулировке грамматики.

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()

proposed solution

...