Create Animated Histograms Using R

Create Animated Histograms Using R

Carnotense animatum talea quae directe inseri potest in cursorium cuiuslibet website magis magisque popularis fiunt. Mobilitates mutationum in quibusvis notis certo tempore ostendunt atque id clare faciunt. Videamus quomodo R et fasciculis genericis utentes creandi sunt.

Skillbox commendat: Cursus practicus "Phython elit a VULNUS".

admonemus; omnibus legentibus "Habr" - discount 10 rublorum cum scribendo in quavis Skillbox utens "Habr" codice promotivo.

packages

Non opus est packages in R:

Haec duo sunt maxime necessaria. In addition, tedyverse, janitor et squamae notitias administrare debebunt, aciem mundare et secundum formam format.

notitia

Originale dataset utemur in hoc incepto ab Mundus Bank website receptam. Hic sunt - WorldBank Data. Eadem notitia, si opus fuerit ad parata, detrahi potest e project folders.

Quale indicium est hoc? Specimen continet GDP valorem plurimorum nationum per aliquot annos (ab 2000 ad 2017).

Mge

Nos codice infra missae utemur ad datas formas debitas praeparandas. Nomina columnae purgamus, numeros in forma numerosa convertimus et notitias functionis colligentes utentes convertimus. Servamus omnia quae in gdp_tidy.csv recipiuntur ad ulteriorem usum.

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")

Animatum histograms

Eorum creatio duos gradus requirit:

  • Integram sententiam strui histograms actualibus utens ggplot2.
  • Histogramis statice animatis cum parametris desideratis gganimatis utentes.

Ultimus gradus est animationem reddere in forma desiderata, GIF vel MP4.

Loading libraries

  • library (tidyverse)
  • library (gganimate)

Data procuratio

In hoc gradu, notitias eliquare debes, ut summas 10 nationes quotannis obtineant. Plures addamus columnas quae nobis licebit legendam ostendere histogram- matis.

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()

Building histograms stabilis

Nunc ut sarcinam datam in forma inquisita habemus, histogrammata static ducere incipimus. Basic informationes - top 10 nationes maximis GDP ad tempus interuallum delectis. graphs pro quolibet anno creamus.

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"))

Insidias creando ggplot2 utens valde simplex est. Ut videre potes in sectione supra codice, plura sunt cardinis puncta cum themate () functione. Necesaria sunt ut sine problematibus omnia elementa animantur. Earum aliqua sint pariatur nisi sit. Exempli gratia: Tantum lineae et legendae eget euismod verticalis ducuntur, sed tituli et axis plurium aliorum componentium ab area removentur.

animatione

Munus praecipuum hic est transition_states(), grapharum staticarum separatim cohaeret. view_follow() eget lineas haurire adhibetur.

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")

reddendo

Postquam animatio in obiecto animte creatur et reconditur, tempus est utens munere animato reddere. Redemptor usus in animatis () diversum esse potest secundum rationem cursoris file requisiti.

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 )

exitum

Create Animated Histograms Using R

Ut vides, nihil implicatum est. Totum consilium in promptu est mihi GitHubuti potes, ut tibi videbitur.

Skillbox commendat:

Source: www.habr.com