Viglaj stangaj diagramoj, kiuj povas esti enigitaj rekte en afiŝon en iu ajn retejo, fariĝas ĉiam pli popularaj. Ili montras la dinamikon de ŝanĝoj en iuj trajtoj dum certa tempo kaj faras tion klare. Ni vidu kiel krei ilin per R kaj senmarkaj pakaĵoj.
Ĉi tiuj du estas ekstreme necesaj. Krome, tidyverse, domzorgisto kaj pesilo estos postulataj por administri la datumojn, purigi la tabelon kaj formati laŭe.
datumoj
La originala datumaro, kiun ni uzos en ĉi tiu projekto, estas elŝutita de la retejo de la Monda Banko. Ĉi tie ili estas - Datumoj de Monda Banko. La samaj datumoj, se vi bezonas ĝin preta, povas esti elŝutitaj de projektaj dosierujoj.
Kia informo estas ĉi tio? La specimeno enhavas la MEP-valoron de plej multaj landoj dum pluraj jaroj (de 2000 ĝis 2017).
Datumtraktado
Ni uzos la kodon afiŝita sube por prepari la bezonatan datumformaton. Ni purigas la kolumnonomojn, turnas la nombrojn en nombroformaton kaj konvertas la datumojn per la funkcio gather(). Ni konservas ĉion, kio estas ricevita en gdp_tidy.csv por plua uzo.
Grafikante kompletan aron de realaj histogramoj uzante ggplot2.
Vimigu senmovajn histogramojn kun dezirataj parametroj uzante gganimate.
La fina paŝo estas redoni la kuraĝigon en la dezirata formato, inkluzive GIF aŭ MP4.
Ŝargante bibliotekojn
biblioteko (ordiga)
biblioteko (gganimate)
Administrado de datumoj
En ĉi tiu paŝo, vi devas filtri la datumojn por akiri la plej bonajn 10 landojn por ĉiu jaro. Ni aldonu plurajn kolumnojn, kiuj permesos al ni montri legendon por la histogramo.
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()
Konstruado de senmovaj histogramoj
Nun kiam ni havas datumpakaĵon en la bezonata formato, ni komencas desegni statikajn histogramojn. Bazaj informoj - plej bonaj 10 landoj kun maksimuma MEP por la elektita tempointervalo. Ni kreas grafikaĵojn por ĉiu jaro.
Krei intrigojn per ggplot2 estas tre simpla. Kiel vi povas vidi en la koda sekcio supre, estas pluraj ŝlosilaj punktoj kun la funkcio theme(). Ili estas necesaj por ke ĉiuj elementoj animu senprobleme. Kelkaj el ili eble ne montriĝas se necese. Ekzemplo: Nur la vertikalaj kradlinioj kaj legendoj estas desegnitaj, sed la aksaj titoloj kaj pluraj aliaj komponantoj estas forigitaj de la areo.
Animacio
La ŝlosila funkcio ĉi tie estas transition_states(), ĝi kunigas apartajn statikajn grafikaĵojn. view_follow() estas uzata por desegni kradliniojn.
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")
Redonado
Post kiam la animacio estas kreita kaj konservita en la anim-objekto, estas tempo por bildigi ĝin per la funkcio animate(). La bildilo uzata en animate() povas esti malsama depende de la tipo de eligdosiero bezonata.