αž”αž„αŸ’αž€αžΎαžαž’αŸŠαžΈαžŸαŸ’αžαžΌαž€αŸ’αžšαžΆαž˜αžŠαŸ‚αž›αž˜αžΆαž“αž…αž›αž“αžΆαžŠαŸ„αž™αž”αŸ’αžšαžΎ R

αž”αž„αŸ’αž€αžΎαžαž’αŸŠαžΈαžŸαŸ’αžαžΌαž€αŸ’αžšαžΆαž˜αžŠαŸ‚αž›αž˜αžΆαž“αž…αž›αž“αžΆαžŠαŸ„αž™αž”αŸ’αžšαžΎ R

αž‚αŸ†αž“αžΌαžŸαžαžΆαž„αžšαž”αžΆαžšαžŠαŸ‚αž›αž˜αžΆαž“αž…αž›αž“αžΆαžŠαŸ‚αž›αž’αžΆαž…αž”αž„αŸ’αž€αž”αŸ‹αžŠαŸ„αž™αž•αŸ’αž‘αžΆαž›αŸ‹αž‘αŸ…αž€αŸ’αž“αž»αž„αž”αŸ’αžšαž€αžΆαžŸαž“αŸ…αž›αžΎαž‚αŸαž αž‘αŸ†αž–αŸαžšαžŽαžΆαž˜αž½αž™αž€αŸ†αž–αž»αž„αž‘αž‘αž½αž›αž”αžΆαž“αž”αŸ’αžšαž‡αžΆαž”αŸ’αžšαž·αž™αž—αžΆαž–αž€αžΆαž“αŸ‹αžαŸ‚αžαŸ’αž›αžΆαŸ†αž„αž‘αžΎαž„αŸ” αž–αž½αž€αž‚αŸαž”αž„αŸ’αž αžΆαž‰αžαžΆαž˜αžœαž“αŸ’αžαž“αŸƒαž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž“αŸ…αž€αŸ’αž“αž»αž„αž›αž€αŸ’αžαžŽαŸˆαžŽαžΆαž˜αž½αž™αž€αŸ’αž“αž»αž„αžšαž™αŸˆαž–αŸαž›αž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹αž˜αž½αž™ αž αžΎαž™αž’αŸ’αžœαžΎαžœαžΆαž™αŸ‰αžΆαž„αž…αŸ’αž”αžΆαžŸαŸ‹αŸ” αžαŸ„αŸ‡αž˜αžΎαž›αž–αžΈαžšαž”αŸ€αž”αž”αž„αŸ’αž€αžΎαžαž–αž½αž€αžœαžΆαžŠαŸ„αž™αž”αŸ’αžšαžΎ R αž“αž·αž„αž€αž‰αŸ’αž…αž”αŸ‹αž‘αžΌαž‘αŸ…αŸ”

Skillbox αžŽαŸ‚αž“αžΆαŸ†αŸ– αžœαž‚αŸ’αž‚αžŸαž·αž€αŸ’αžŸαžΆαž‡αžΆαž€αŸ‹αžŸαŸ’αžαŸ‚αž„ "αž’αŸ’αž“αž€αž’αž—αž·αžœαžŒαŸ’αžαž“αŸ Python αž–αžΈαžŠαŸ†αž”αžΌαž„".

αž™αžΎαž„αžšαŸ†αž›αžΉαž€αŸ– αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αž“αž€αž’αžΆαž“αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž“αŸƒ "Habr" - αž€αžΆαžšαž”αž‰αŸ’αž…αž»αŸ‡αžαž˜αŸ’αž›αŸƒ 10 rubles αž“αŸ…αž–αŸαž›αž…αž»αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡αž€αŸ’αž“αž»αž„αžœαž‚αŸ’αž‚αžŸαž·αž€αŸ’αžŸαžΆ Skillbox αžŽαžΆαž˜αž½αž™αžŠαŸ„αž™αž”αŸ’αžšαžΎαž›αŸαžαž€αžΌαžŠαž•αŸ’αžŸαž–αŸ’αžœαž•αŸ’αžŸαžΆαž™ "Habr" αŸ”

αž€αž‰αŸ’αž…αž”αŸ‹

αž™αžΎαž„αžαŸ’αžšαžΌαžœαž€αžΆαžšαž€αž‰αŸ’αž…αž”αŸ‹αž€αŸ’αž“αž»αž„ R:

αž‘αžΆαŸ†αž„αž–αžΈαžšαž“αŸαŸ‡αž‚αžΊαž…αžΆαŸ†αž”αžΆαž…αŸ‹αž”αŸ†αž•αž»αžαŸ” αž›αžΎαžŸαž–αžΈαž“αŸαŸ‡αž‘αŸ€αž tidyverse, janitor αž“αž·αž„ scales αž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‘αžΆαž˜αž‘αžΆαžšαžŠαžΎαž˜αŸ’αž”αžΈαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž‘αž·αž“αŸ’αž“αž“αŸαž™ αžŸαž˜αŸ’αž’αžΆαž array αž“αž·αž„ format αž‘αŸ…αžαžΆαž˜αž“αŸ„αŸ‡αŸ”

αž‘αž·αž“αŸ’αž“αž“αŸαž™

αžŸαŸ†αžŽαž»αŸ†αž‘αž·αž“αŸ’αž“αž“αŸαž™αžŠαžΎαž˜αžŠαŸ‚αž›αž™αžΎαž„αž“αžΉαž„αž”αŸ’αžšαžΎαž€αŸ’αž“αž»αž„αž‚αž˜αŸ’αžšαŸ„αž„αž“αŸαŸ‡αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‘αžΆαž‰αž™αž€αž–αžΈαž‚αŸαž αž‘αŸ†αž–αŸαžšαžšαž”αžŸαŸ‹αž’αž“αžΆαž‚αžΆαžšαž–αž·αž—αž–αž›αŸ„αž€αŸ” αž“αŸ…αž‘αžΈαž“αŸαŸ‡αž–αž½αž€αž‚αŸ - αž‘αž·αž“αŸ’αž“αž“αŸαž™αž’αž“αžΆαž‚αžΆαžšαž–αž·αž—αž–αž›αŸ„αž€. αž‘αž·αž“αŸ’αž“αž“αŸαž™αžŠαžΌαž…αž‚αŸ’αž“αžΆ αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαž€αžΆαžšαžœαžΆαžšαž½αž…αžšαžΆαž›αŸ‹ αž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‘αžΆαž‰αž™αž€αž–αžΈ αžαžαž‚αž˜αŸ’αžšαŸ„αž„.

αžαžΎαž–αŸαžαŸŒαž˜αžΆαž“αž”αŸ’αžšαž—αŸαž‘αž“αŸαŸ‡αž‡αžΆαž’αŸ’αžœαžΈ? αž‚αŸ†αžšαžΌβ€‹αž“αŸαŸ‡β€‹αž˜αžΆαž“β€‹αžαž˜αŸ’αž›αŸƒ GDP αžšαž”αžŸαŸ‹β€‹αž”αŸ’αžšαž‘αŸαžŸβ€‹αž—αžΆαž‚αž…αŸ’αžšαžΎαž“β€‹αž‡αžΆαž…αŸ’αžšαžΎαž“β€‹αž†αŸ’αž“αžΆαŸ† (αž–αžΈβ€‹αž†αŸ’αž“αžΆαŸ† 2000 αžŠαž›αŸ‹β€‹αž†αŸ’αž“αžΆαŸ† 2017)αŸ”

αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž‘αž·αž“αŸ’αž“αž“αŸαž™

αž™αžΎαž„αž“αžΉαž„αž”αŸ’αžšαžΎαž€αžΌαžŠαžŠαŸ‚αž›αž”αžΆαž“αž”αž„αŸ’αž αŸ„αŸ‡αžαžΆαž„αž€αŸ’αžšαŸ„αž˜ αžŠαžΎαž˜αŸ’αž”αžΈαžšαŸ€αž”αž…αŸ†αž‘αž˜αŸ’αžšαž„αŸ‹αž‘αž·αž“αŸ’αž“αž“αŸαž™αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž€αžΆαžšαŸ” αž™αžΎαž„αž‡αž˜αŸ’αžšαŸ‡αžˆαŸ’αž˜αŸ„αŸ‡αž‡αž½αžšαžˆαžš αž”αž„αŸ’αžœαŸ‚αžšαž›αŸαžαž‘αŸ…αž‡αžΆαž‘αž˜αŸ’αžšαž„αŸ‹αž›αŸαž αž αžΎαž™αž”αŸ†αž”αŸ’αž›αŸ‚αž„αž‘αž·αž“αŸ’αž“αž“αŸαž™αžŠαŸ„αž™αž”αŸ’αžšαžΎαž˜αž»αžαž„αžΆαžšαž”αŸ’αžšαž˜αžΌαž›αž•αŸ’αžαž»αŸ†()αŸ” αž™αžΎαž„αžšαž€αŸ’αžŸαžΆαž‘αž»αž€αž’αŸ’αžœαžΈαž‚αŸ’αžšαž”αŸ‹αž™αŸ‰αžΆαž„αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‘αž‘αž½αž›αž“αŸ…αž€αŸ’αž“αž»αž„ gdp_tidy.csv αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž”αž“αŸ’αžαŸ‚αž˜αž‘αŸ€αžαŸ”

library(tidyverse)
library(janitor)

gdp <- read_csv("./data/GDP_Data.csv")

#select required columns

gdp <- gdp %>% select(3:15)

#filter only country rows

gdp <- gdp[1:217,]

gdp_tidy <- gdp %>%
mutate_at(vars(contains("YR")),as.numeric) %>%
gather(year,value,3:13) %>%
janitor::clean_names() %>%
mutate(year = as.numeric(stringr::str_sub(year,1,4)))

write_csv(gdp_tidy,"./data/gdp_tidy.csv")

αž’αŸŠαžΈαžŸαŸ’αžαžΌαž€αŸ’αžšαžΆαž˜αž˜αžΆαž“αž…αž›αž“αžΆ

αž€αžΆαžšαž”αž„αŸ’αž€αžΎαžαžšαž”αžŸαŸ‹αž–αž½αž€αž‚αŸαžαŸ’αžšαžΌαžœαž€αžΆαžšαž–αžΈαžšαžŠαŸ†αžŽαžΆαž€αŸ‹αž€αžΆαž›αŸ–

  • αžšαŸ€αž”αž…αŸ†αžŸαŸ†αžŽαž»αŸ†αž’αŸŠαžΈαžŸαŸ’αžαžΌαž€αŸ’αžšαžΆαž˜αž–αž·αžαž”αŸ’αžšαžΆαž€αžŠαž–αŸαž‰αž›αŸαž‰αžŠαŸ„αž™αž”αŸ’αžšαžΎ ggplot2 αŸ”
  • αž’αŸ’αžœαžΎαž…αž›αž“αžΆαž’αŸŠαžΈαžŸαŸ’αžαžΌαž€αŸ’αžšαžΆαž˜αž‹αž·αžαž·αžœαž“αŸ’αžαž‡αžΆαž˜αž½αž™αž“αžΉαž„αž”αŸ‰αžΆαžšαŸ‰αžΆαž˜αŸ‰αŸ‚αžαŸ’αžšαžŠαŸ‚αž›αž…αž„αŸ‹αž”αžΆαž“αžŠαŸ„αž™αž”αŸ’αžšαžΎ gganimate αŸ”

αž‡αŸ†αž αžΆαž“αž…αž»αž„αž€αŸ’αžšαŸ„αž™αž‚αžΊαžαŸ’αžšαžΌαžœαž”αž„αŸ’αž αžΆαž‰αž…αž›αž“αžΆαž€αŸ’αž“αž»αž„αž‘αž˜αŸ’αžšαž„αŸ‹αžŠαŸ‚αž›αž…αž„αŸ‹αž”αžΆαž“ αžšαž½αž˜αž‘αžΆαŸ†αž„ GIF ឬ MP4 αŸ”

αž€αŸ†αž–αž»αž„αž•αŸ’αž‘αž»αž€αž”αžŽαŸ’αžŽαžΆαž›αŸαž™

  • αž”αžŽαŸ’αžŽαžΆαž›αŸαž™
  • αž”αžŽαŸ’αžŽαžΆαž›αŸαž™

αž€αžΆαžšβ€‹αž‚αŸ’αžšαž”αŸ‹β€‹αž‚αŸ’αžšαž„β€‹αž‘αž·αž“αŸ’αž“αž“αŸαž™

αž“αŸ…αž€αŸ’αž“αž»αž„αž‡αŸ†αž αžΆαž“αž“αŸαŸ‡ αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαžαŸ’αžšαž„αž‘αž·αž“αŸ’αž“αž“αŸαž™αžŠαžΎαž˜αŸ’αž”αžΈαž‘αž‘αž½αž›αž”αžΆαž“αž”αŸ’αžšαž‘αŸαžŸαž€αŸ†αž–αžΌαž›αž‘αžΆαŸ†αž„ 10 αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž†αŸ’αž“αžΆαŸ†αž“αžΈαž˜αž½αž™αŸ—αŸ” αž…αžΌαžšαž”αž“αŸ’αžαŸ‚αž˜αž‡αž½αžšαžˆαžšαž‡αžΆαž…αŸ’αžšαžΎαž“αžŠαŸ‚αž›αž“αžΉαž„αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž™αžΎαž„αž”αž„αŸ’αž αžΆαž‰αžšαžΏαž„αž–αŸ’αžšαŸαž„αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αŸŠαžΈαžŸαŸ’αžαžΌαž€αŸ’αžšαžΆαž˜αŸ”

gdp_tidy <- read_csv("./data/gdp_tidy.csv")

gdp_formatted <- gdp_tidy %>%
group_by(year) %>%
# The * 1 makes it possible to have non-integer ranks while sliding
mutate(rank = rank(-value),
Value_rel = value/value[rank==1],
Value_lbl = paste0(" ",round(value/1e9))) %>%
group_by(country_name) %>%
filter(rank <=10) %>%
ungroup()

αž€αžΆαžšαž€αžŸαžΆαž„αž’αŸŠαžΈαžŸαŸ’αžαžΌαž€αŸ’αžšαžΆαž˜αž‹αž·αžαž·αžœαž“αŸ’αž

αž₯αž‘αžΌαžœαž“αŸαŸ‡αž™αžΎαž„αž˜αžΆαž“αž€αž‰αŸ’αž…αž”αŸ‹αž‘αž·αž“αŸ’αž“αž“αŸαž™αž€αŸ’αž“αž»αž„αž‘αž˜αŸ’αžšαž„αŸ‹αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž€αžΆαžš αž™αžΎαž„αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž‚αžΌαžšαž’αŸŠαžΈαžŸαŸ’αžαžΌαž€αŸ’αžšαžΆαž˜αž‹αž·αžαž·αžœαž“αŸ’αžαŸ” αž–αŸαžαŸŒαž˜αžΆαž“αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“ - αž”αŸ’αžšαž‘αŸαžŸαž€αŸ†αž–αžΌαž›αž‘αžΆαŸ†αž„ 10 αžŠαŸ‚αž›αž˜αžΆαž“ GDP αž’αžαž·αž”αžšαž˜αžΆαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž…αž“αŸ’αž›αŸ„αŸ‡αž–αŸαž›αžŠαŸ‚αž›αž”αžΆαž“αž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸαŸ” αž™αžΎαž„αž”αž„αŸ’αž€αžΎαžαž€αŸ’αžšαžΆαž αŸ’αžœαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž†αŸ’αž“αžΆαŸ†αž“αžΈαž˜αž½αž™αŸ—αŸ”

staticplot = ggplot(gdp_formatted, aes(rank, group = country_name,
fill = as.factor(country_name), color = as.factor(country_name))) +
geom_tile(aes(y = value/2,
height = value,
width = 0.9), alpha = 0.8, color = NA) +
geom_text(aes(y = 0, label = paste(country_name, " ")), vjust = 0.2, hjust = 1) +
geom_text(aes(y=value,label = Value_lbl, hjust=0)) +
coord_flip(clip = "off", expand = FALSE) +
scale_y_continuous(labels = scales::comma) +
scale_x_reverse() +
guides(color = FALSE, fill = FALSE) +
theme(axis.line=element_blank(),
axis.text.x=element_blank(),
axis.text.y=element_blank(),
axis.ticks=element_blank(),
axis.title.x=element_blank(),
axis.title.y=element_blank(),
legend.position="none",
panel.background=element_blank(),
panel.border=element_blank(),
panel.grid.major=element_blank(),
panel.grid.minor=element_blank(),
panel.grid.major.x = element_line( size=.1, color="grey" ),
panel.grid.minor.x = element_line( size=.1, color="grey" ),
plot.title=element_text(size=25, hjust=0.5, face="bold", colour="grey", vjust=-1),
plot.subtitle=element_text(size=18, hjust=0.5, face="italic", color="grey"),
plot.caption =element_text(size=8, hjust=0.5, face="italic", color="grey"),
plot.background=element_blank(),
plot.margin = margin(2,2, 2, 4, "cm"))

αž€αžΆαžšαž”αž„αŸ’αž€αžΎαžαžŠαžΈαžŠαŸ„αž™αž”αŸ’αžšαžΎ ggplot2 αž‚αžΊαžŸαžΆαž˜αž‰αŸ’αž‰αžŽαžΆαžŸαŸ‹αŸ” αžŠαžΌαž…αžŠαŸ‚αž›αž’αŸ’αž“αž€αž’αžΆαž…αžƒαžΎαž‰αž“αŸ…αž€αŸ’αž“αž»αž„αž•αŸ’αž“αŸ‚αž€αž€αžΌαžŠαžαžΆαž„αž›αžΎ αž˜αžΆαž“αž…αŸ†αžŽαž»αž…αžŸαŸ†αžαžΆαž“αŸ‹αŸ—αž‡αžΆαž…αŸ’αžšαžΎαž“αžŠαŸ‚αž›αž˜αžΆαž“αž˜αž»αžαž„αžΆαžš theme()αŸ” αž–αž½αž€αžœαžΆαž…αžΆαŸ†αž”αžΆαž…αŸ‹αžŠαžΎαž˜αŸ’αž”αžΈαž±αŸ’αž™αž’αžΆαžαž»αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž˜αžΆαž“αž…αž›αž“αžΆαžŠαŸ„αž™αž‚αŸ’αž˜αžΆαž“αž”αž‰αŸ’αž αžΆαŸ” αž–αž½αž€αžœαžΆαžαŸ’αž›αŸ‡αž”αŸ’αžšαž αŸ‚αž›αž‡αžΆαž˜αž·αž“αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž αžΆαž‰αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž…αžΆαŸ†αž”αžΆαž…αŸ‹αŸ” αž§αž‘αžΆαž αžšαžŽαŸαŸ– αž˜αžΆαž“αžαŸ‚αž”αž“αŸ’αž‘αžΆαžαŸ‹αž€αŸ’αžšαž‘αžΆαž…αžαŸ’αžšαž„αŸ’αž‚αž”αž‰αŸ’αžˆαžš αž“αž·αž„αžšαžΏαž„αž–αŸ’αžšαŸαž„αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‚αžΌαžš αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž…αŸ†αžŽαž„αž‡αžΎαž„αž’αŸαž€αŸ’αžŸ αž“αž·αž„αžŸαž˜αžΆαžŸαž’αžΆαžαž»αž˜αž½αž™αž…αŸ†αž“αž½αž“αž•αŸ’αžŸαŸαž„αž‘αŸ€αžαžαŸ’αžšαžΌαžœαž”αžΆαž“αžŠαž€αž…αŸαž‰αž–αžΈαžαŸ†αž”αž“αŸ‹αž“αŸ„αŸ‡αŸ”

αž…αž›αž“αžΆ

αž˜αž»αžαž„αžΆαžšαžŸαŸ†αžαžΆαž“αŸ‹αž“αŸ…αž‘αžΈαž“αŸαŸ‡αž‚αžΊ transition_states() αžœαžΆαž—αŸ’αž‡αžΆαž”αŸ‹αž€αŸ’αžšαžΆαž αŸ’αžœαž‹αž·αžαž·αžœαž“αŸ’αžαžŠαžΆαž…αŸ‹αžŠαŸ„αž™αž‘αŸ‚αž€αž–αžΈαž‚αŸ’αž“αžΆαŸ” view_follow() αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎαžŠαžΎαž˜αŸ’αž”αžΈαž‚αžΌαžšαž”αž“αŸ’αž‘αžΆαžαŸ‹αž€αŸ’αžšαž‘αžΆαž…αžαŸ’αžšαž„αŸ’αž‚αŸ”

anim = staticplot + transition_states(year, transition_length = 4, state_length = 1) +
view_follow(fixed_x = TRUE) +
labs(title = 'GDP per Year : {closest_state}',
subtitle = "Top 10 Countries",
caption = "GDP in Billions USD | Data Source: World Bank Data")

αž€αžΆαžšαž”αž„αŸ’αž αžΆαž‰

αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αž‚αŸ†αž“αžΌαžšαž‡αžΈαžœαž…αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž€αžΎαž αž“αž·αž„αžšαž€αŸ’αžŸαžΆαž‘αž»αž€αž€αŸ’αž“αž»αž„αžœαžαŸ’αžαž»αž‡αžΈαžœαž…αž› αžœαžΆαžŠαž›αŸ‹αž–αŸαž›αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αž„αŸ’αž αžΆαž‰αžœαžΆαžŠαŸ„αž™αž”αŸ’αžšαžΎαž˜αž»αžαž„αžΆαžš animate()αŸ” αž€αž˜αŸ’αž˜αžœαž·αž’αžΈ renderer αžŠαŸ‚αž›αž”αŸ’αžšαžΎαž€αŸ’αž“αž»αž„ animate() αž’αžΆαž…αžαž»αžŸαž‚αŸ’αž“αžΆαž’αžΆαžŸαŸ’αžšαŸαž™αž›αžΎαž”αŸ’αžšαž—αŸαž‘αž―αž€αžŸαžΆαžšαž›αž‘αŸ’αž’αž•αž›αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž€αžΆαžšαŸ”

GIF

# For GIF

animate(anim, 200, fps = 20, width = 1200, height = 1000,
renderer = gifski_renderer("gganim.gif"))

MP4

# For MP4

animate(anim, 200, fps = 20, width = 1200, height = 1000,
renderer = ffmpeg_renderer()) -> for_mp4

anim_save("animation.mp4", animation = for_mp4 )

αž›αž‘αŸ’αž’αž•αž›

αž”αž„αŸ’αž€αžΎαžαž’αŸŠαžΈαžŸαŸ’αžαžΌαž€αŸ’αžšαžΆαž˜αžŠαŸ‚αž›αž˜αžΆαž“αž…αž›αž“αžΆαžŠαŸ„αž™αž”αŸ’αžšαžΎ R

αžŠαžΌαž…αžŠαŸ‚αž›αž’αŸ’αž“αž€αž’αžΆαž…αžƒαžΎαž‰αž‚αŸ’αž˜αžΆαž“αž’αŸ’αžœαžΈαžŸαŸ’αž˜αž»αž‚αžŸαŸ’αž˜αžΆαž‰αž‘αŸαŸ” αž‚αž˜αŸ’αžšαŸ„αž„αž‘αžΆαŸ†αž„αž˜αžΌαž›αž˜αžΆαž“αž“αŸ…αž€αŸ’αž“αž»αž„ GitHub αžšαž”αžŸαŸ‹αžαŸ’αž‰αž»αŸ†αž’αŸ’αž“αž€αž’αžΆαž…αž”αŸ’αžšαžΎαžœαžΆαžαžΆαž˜αžŠαŸ‚αž›αž’αŸ’αž“αž€αžƒαžΎαž‰αžŸαž˜αŸ”

Skillbox αžŽαŸ‚αž“αžΆαŸ†αŸ–

αž”αŸ’αžšαž—αž–: www.habr.com

αž”αž“αŸ’αžαŸ‚αž˜αž˜αžαž·αž™αŸ„αž”αž›αŸ‹