gganimate комментирует переменную даты, которой нет в переходных состояниях - PullRequest
0 голосов
/ 14 апреля 2020

Попытка создать анимированную диаграмму с использованием ggplot и gganimate, где ось x (и значение transition_states) имеет значение c, но переменная текущей даты на диаграмме накладывается на аннотацию. Анимация работает, но кажется, что все даты во временном ряду печатаются сразу (все друг на друге), а не соответствуют анимации. Также пытается сохранить постоянную метку ggrepel выше точки geom_point. Вот пример:

library(dplyr)
library(lubridate)
library(ggrepel)
library(ggplot2)
library(gganimate)

a0 <- data.frame(dt = seq(ymd('2020-01-01'),ymd('2020-03-31'), by = '1 day'),
                 num = seq(1,91,by=1), val=seq(1,91,by=1), label = rep("x",91))

p <- ggplot(data=a0, aes(x=num, y=val, color=label)) +
  geom_point(size=10) +
  annotate("text",  x = 75, y = 75,
           label = as.Date(a0$dt), size = 10) +
  geom_text_repel(label=a0$label, size=10) +
  scale_x_continuous() +
  theme_minimal() +
  theme(text = element_text(size=30),
        legend.position = "none")

anim <- p + 
  transition_states(num,
                    transition_length = 10,
                    state_length = 1000)

anim

1 Ответ

2 голосов
/ 15 апреля 2020

интересная проблема.

Проверьте строку geom_text ниже.

p <- ggplot(data=a0, aes(x=num, y=val, color=label, group=num)) +
    geom_point(size=10) +
    geom_text(data=a0, aes(x=75, y=75, label=as.Date(a0$dt), size=10)) +
scale_x_continuous() +
theme_minimal() +
theme(text = element_text(size=30),
    legend.position = "none")

Надеюсь, это поможет.

...