gganimate не сглаживает анимацию - PullRequest
1 голос
/ 10 апреля 2020

Я пытался выяснить это в течение нескольких дней, но я не могу понять, что мне не хватает. Похоже, что gganimate не добавляет никакого перехода между кадрами.

Я использую набор данных Тур де Франс с сегодняшнего дня . Исходя из этого, за несколько лет я сделал информационный блок со страной победителя. У меня есть общее количество побед за каждый год, и я добавил рейтинг каждой страны за этот год. Существует 106 изданий, от 1 до 106 и 106 лет (с 1903 по 2019, с некоторыми пробелами из-за WW).

РЕДАКТИРОВАТЬ: Доступен набор данных в CSV: https://github.com/AScalco/AS_TidyTuesday

> head(race_chart_ranked, 20)
# A tibble: 20 x 5
# Groups:   year [2]
   nationality   n.victories edition  year  rank
   <chr>               <int>   <dbl> <dbl> <int>
 1 France                  1       1  1903     1
 2 Luxembourg              0       1  1903     2
 3 Belgium                 0       1  1903     3
 4 Italy                   0       1  1903     4
 5 Switzerland             0       1  1903     5
 6 Spain                   0       1  1903     6
 7 Netherlands             0       1  1903     7
 8 United States           0       1  1903     8
 9 Ireland                 0       1  1903     9
10 Denmark                 0       1  1903    10
11 Germany                 0       1  1903    11
12 Australia               0       1  1903    12
13 Great Britain           0       1  1903    13
14 Colombia                0       1  1903    14
15 France                  2       2  1904     1
16 Luxembourg              0       2  1904     2
17 Belgium                 0       2  1904     3
18 Italy                   0       2  1904     4
19 Switzerland             0       2  1904     5
20 Spain                   0       2  1904     6
> tail(race_chart_ranked, 20)
# A tibble: 20 x 5
# Groups:   year [2]
   nationality   n.victories edition  year  rank
   <chr>               <int>   <dbl> <dbl> <int>
 1 Switzerland             2     105  2018     9
 2 Australia               1     105  2018    10
 3 Denmark                 1     105  2018    11
 4 Germany                 1     105  2018    12
 5 Ireland                 1     105  2018    13
 6 Colombia                0     105  2018    14
 7 France                 36     106  2019     1
 8 Belgium                18     106  2019     2
 9 Spain                  12     106  2019     3
10 Italy                  10     106  2019     4
11 United States          10     106  2019     5
12 Great Britain           6     106  2019     6
13 Luxembourg              5     106  2019     7
14 Netherlands             2     106  2019     8
15 Switzerland             2     106  2019     9
16 Australia               1     106  2019    10
17 Colombia                1     106  2019    11
18 Denmark                 1     106  2019    12
19 Germany                 1     106  2019    13
20 Ireland                 1     106  2019    14

Я сделал этот график, и он отлично работает, за исключением того, что он не работает гладко. Я уже пытался изменить количество длительности, кадров и кадров в секунду, но это сильно изменится. Я попытался, добавив "ease_aes ()", но это не произвело никаких изменений. Чего мне не хватает?

Анимированный сюжет - не плавный


animation_ranked <- race_chart_ranked %>%
  ggplot(aes(xmin = 0, xmax = n.victories, ymin=rank-.5, ymax=rank+0.5, y=rank)) +
  geom_rect(fill = "black", color="black", size=1.05) +
  scale_x_continuous(limits=c(-15, 40), breaks=c(seq(0, 40, by=5))) +
  # Add labels to each country 
  geom_text(aes(label=nationality, x=(-2.5), hjust="right"), size = 6, fontface="bold") +
  # Add a label with the year
  geom_text(aes(label=year, x=35, y=13.5), size=15) +
  # Add number of victories (if more than 0) for each country
  geom_text(data=race_chart_ranked %>% filter(n.victories > 0),
            aes(label=n.victories, x=n.victories-0.75, y=rank), color="white", fontface="bold") +
  # Reverse the scale to show the highest victories on top
  scale_y_reverse() +
  # Add labels
  labs(title = "Number of victories by country",
       x = "Number of victories", y = "") +
  # Choose theme
  theme_void() +
  # ANIMATION CODE
  # Group by year
  aes(group = year) +
  # Apply transition by time
  transition_time(year) +
  # Apply ease_eas()
  ease_aes()

# Set animation general options
options(gganimate.nframes = 100, gganimate.fps = 20)
# Animate and other options
animate(animation_ranked, end_pause=10, duration = 15)
...