Animirani stupčasti dijagrami koji se mogu ugraditi izravno u post na bilo kojoj web stranici postaju sve popularniji. Oni prikazuju dinamiku promjena bilo koje karakteristike tijekom određenog vremena i to čine jasno. Pogledajmo kako ih stvoriti pomoću R-a i generičkih paketa.
Ovo dvoje je izuzetno potrebno. Osim toga, bit će potrebni tidyverse, domar i vaga za upravljanje podacima, čišćenje niza i formatiranje u skladu s tim.
Podaci
Izvorni skup podataka koji ćemo koristiti u ovom projektu preuzet je s web stranice Svjetske banke. Evo ih - Podaci Svjetske banke. Iste podatke, ako vam trebaju gotovi, možete preuzeti sa projektne mape.
Kakva je ovo informacija? Uzorak sadrži vrijednost BDP-a većine zemalja za nekoliko godina (od 2000. do 2017.).
Obrada podataka
Za pripremu potrebnog formata podataka koristit ćemo kod objavljen u nastavku. Brišemo nazive stupaca, pretvaramo brojeve u brojčani format i pretvaramo podatke pomoću funkcije gather(). Sve primljeno spremamo u gdp_tidy.csv za daljnju upotrebu.
Iscrtavanje kompletnog skupa stvarnih histograma pomoću ggplot2.
Animirajte statične histograme sa željenim parametrima koristeći gganimate.
Posljednji korak je renderiranje animacije u željenom formatu, uključujući GIF ili MP4.
Učitavanje knjižnica
knjižnica (tidyverse)
knjižnica (gganimate)
Upravljanje podatcima
U ovom koraku trebate filtrirati podatke kako biste dobili prvih 10 zemalja za svaku godinu. Dodajmo nekoliko stupaca koji će nam omogućiti prikaz legende za histogram.
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()
Izrada statičkih histograma
Sada kada imamo paket podataka u potrebnom formatu, počinjemo crtati statičke histograme. Osnovne informacije - top 10 zemalja s najvećim BDP-om za odabrani vremenski interval. Izrađujemo grafikone za svaku godinu.
Stvaranje dijagrama pomoću ggplot2 vrlo je jednostavno. Kao što možete vidjeti u gornjem dijelu koda, postoji nekoliko ključnih točaka s funkcijom theme(). Oni su neophodni kako bi svi elementi oživjeli bez problema. Neki od njih možda neće biti prikazani ako je potrebno. Primjer: Iscrtane su samo okomite rešetke i legende, ali su naslovi osi i nekoliko drugih komponenti uklonjeni iz područja.
animacija
Ključna funkcija ovdje je conversion_states(), spaja zasebne statičke grafikone. view_follow() se koristi za crtanje linija mreže.
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")
Prikazivanje
Nakon što je animacija stvorena i pohranjena u anim objektu, vrijeme je da je renderirate pomoću funkcije animate(). Renderer koji se koristi u animate() može biti različit ovisno o vrsti potrebne izlazne datoteke.