Я пытался выяснить это в течение нескольких дней, но я не могу понять, что мне не хватает. Похоже, что 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)