Animearre staafdiagrammen dy't direkt kinne wurde ynbêde yn in post op elke webside wurde hieltyd populêrder. Se toane de dynamyk fan feroaringen yn alle skaaimerken oer in bepaalde tiid en dogge dit dúdlik. Litte wy sjen hoe't jo se kinne meitsje mei R en generyske pakketten.
Dizze twa binne tige needsaaklik. Derneist sille tidyverse, janitor en skalen ferplicht wêze om de gegevens te behearjen, de array op te romjen en dêrop te formatteren.
data
De orizjinele dataset dy't wy sille brûke yn dit projekt is ynladen fan 'e webside fan' e Wrâldbank. Hjir binne se - Wrâldbank gegevens. Deselde gegevens, as jo se klear nedich binne, kinne wurde downloade fan projekt mappen.
Wat foar ynformaasje is dit? De stekproef befettet de BBP-wearde fan 'e measte lannen foar ferskate jierren (fan 2000 oant 2017).
Gegevens ferwurkjen
Wy sille de hjirûnder pleatste koade brûke om it fereaske gegevensformaat te meitsjen. Wy wiskje de kolomnammen, meitsje de nûmers yn in nûmerformaat, en konvertearje de gegevens mei de funksje sammelje () . Wy bewarje alles dat ûntfongen is yn gdp_tidy.csv foar fierder gebrûk.
It plotjen fan in folsleine set fan eigentlike histogrammen mei ggplot2.
Animearje statyske histogrammen mei winske parameters mei gganimate.
De lêste stap is om de animaasje yn it winske formaat te meitsjen, ynklusyf GIF of MP4.
It laden fan biblioteken
bibleteek (tidyverse)
bibleteek (gganimate)
Gegevensbehear
Yn dizze stap moatte jo de gegevens filterje om de top 10 lannen foar elk jier te krijen. Litte wy ferskate kolommen tafoegje wêrmei wy in leginde foar it histogram kinne werjaan.
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()
Bouwe statyske histogrammen
No't wy in gegevenspakket hawwe yn it fereaske formaat, begjinne wy statyske histogrammen te tekenjen. Basisynformaasje - top 10 lannen mei maksimale BBP foar it selekteare tiidynterval. Wy meitsje grafiken foar elk jier.
It meitsjen fan plots mei ggplot2 is heul ienfâldich. Sa't jo sjen kinne yn de koade seksje hjirboppe, der binne ferskate wichtige punten mei de tema () funksje. Se binne nedich sadat alle eleminten sûnder problemen animearje. Guon fan harren wurde miskien net werjûn as it nedich is. Foarbyld: Allinnich de fertikale rasterlinen en leginden wurde tekene, mar de astitels en ferskate oare komponinten wurde út it gebiet fuortsmiten.
Animaasje
De kaai funksje hjir is transition_states (), it stitches tegearre aparte statyske grafiken. view_follow() wurdt brûkt om rasterlinen te tekenjen.
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")
Rendering
Sadree't de animaasje is oanmakke en opslein yn de anim foarwerp, it is op 'e tiid in render it mei help fan de animate () funksje. De renderer brûkt yn animate () kin ferskille ôfhinklik fan it type útfiertriem nedich.