#источник: https://t.me/rstudioprogr

library(ggplot2)
library(dplyr)
## 
## Присоединяю пакет: 'dplyr'
## Следующие объекты скрыты от 'package:stats':
## 
##     filter, lag
## Следующие объекты скрыты от 'package:base':
## 
##     intersect, setdiff, setequal, union
library(tidyr)
library(gganimate)

gapminder <- read.csv("https://raw.githubusercontent.com/plotly/datasets/master/gapminderDataFiveYear.csv")
gapminder1 <- gapminder %>% filter(country %in% c("Belgium", "Brazil", "Romania"))

m1 <- ggplot(gapminder1, aes(x = year, y = lifeExp, color = country)) + geom_line(size = 1.5) + theme_minimal() + scale_color_manual(values = c("darkblue", "slateblue", "lightblue")) + theme(axis.title.x = element_text(size = 20), axis.title.y = element_text(size = 20), axis.text.x = element_text(size = 15), axis.text.y = element_text(size = 15), legend.text = element_text(size = 15), legend.title = element_text(size = 15))
## Warning: Using `size` aesthetic for lines was deprecated in ggplot2 3.4.0.
## ℹ Please use `linewidth` instead.
Plot1 <- m1 + transition_reveal(year) 

m <- gganimate::animate(Plot1, duration = 5, fps = 20, width = 1000, height = 1000, renderer = gifski_renderer())
## 
## `geom_line()`: Each group consists of only one observation.
## ℹ Do you need to adjust the group aesthetic?
## 
## 
## `geom_line()`: Each group consists of only one observation.
## ℹ Do you need to adjust the group aesthetic?
anim_save("lifeExp.gif",animation = m)

m2 <- ggplot(gapminder1, aes(x = year, y = lifeExp, fill = country)) + geom_col(position = "dodge") + theme_minimal() + scale_fill_manual(values = c("darkblue", "slateblue", "lightblue")) + theme(axis.title.x = element_text(size = 20), axis.title.y = element_text(size = 20), axis.text.x = element_text(size = 15), axis.text.y = element_text(size = 15), legend.text = element_text(size = 15), legend.title = element_text(size = 15))
Plot1 <- m2 + transition_reveal(year)