Animerte stolpediagrammer som kan bygges inn direkte i et innlegg på et hvilket som helst nettsted, blir stadig mer populært. De viser dynamikken til endringer i alle egenskaper over en viss tid og gjør dette tydelig. La oss se hvordan du lager dem ved å bruke R og generiske pakker.
Vi minner om:for alle lesere av "Habr" - en rabatt på 10 000 rubler når du melder deg på et hvilket som helst Skillbox-kurs ved å bruke kampanjekoden "Habr".
Disse to er ekstremt nødvendige. I tillegg vil tidyverse, vaktmester og vekter være nødvendig for å administrere dataene, rydde opp i matrisen og formatere deretter.
Data
Det originale datasettet vi skal bruke i dette prosjektet er lastet ned fra Verdensbankens nettsted. Her er de - Verdensbankdata. De samme dataene, hvis du trenger dem ferdige, kan lastes ned fra prosjektmapper.
Hva slags informasjon er dette? Utvalget inneholder BNP-verdien for de fleste land i flere år (fra 2000 til 2017).
Databehandling
Vi vil bruke koden som er lagt ut nedenfor for å forberede det nødvendige dataformatet. Vi sletter kolonnenavnene, gjør tallene til et tallformat og konverterer dataene ved hjelp av gather()-funksjonen. Vi lagrer alt som mottas i gdp_tidy.csv for videre bruk.
Plotte et komplett sett med faktiske histogrammer ved hjelp av ggplot2.
Animer statiske histogrammer med ønskede parametere ved hjelp av gganimate.
Det siste trinnet er å gjengi animasjonen i ønsket format, inkludert GIF eller MP4.
Laster inn biblioteker
bibliotek (tidyverse)
bibliotek(gganimate)
Dataledelse
I dette trinnet må du filtrere dataene for å få de 10 beste landene for hvert år. La oss legge til flere kolonner som lar oss vise en forklaring for histogrammet.
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()
Bygge statiske histogrammer
Nå som vi har en datapakke i det nødvendige formatet, begynner vi å tegne statiske histogrammer. Grunnleggende informasjon - topp 10 land med maksimalt BNP for det valgte tidsintervallet. Vi lager grafer for hvert år.
Å lage plott ved hjelp av ggplot2 er veldig enkelt. Som du kan se i kodedelen ovenfor, er det flere nøkkelpunkter med theme()-funksjonen. De er nødvendige slik at alle elementer animerer uten problemer. Noen av dem vises kanskje ikke om nødvendig. Eksempel: Bare de vertikale rutenettlinjene og tegnene tegnes, men aksetitlene og flere andre komponenter fjernes fra området.
animasjon
Nøkkelfunksjonen her er transition_states(), den syr sammen separate statiske grafer. view_follow() brukes til å tegne rutenett.
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")
Gjengivelse
Når animasjonen er opprettet og lagret i anim-objektet, er det på tide å gjengi den ved hjelp av animate()-funksjonen. Gjengiveren som brukes i animate() kan være forskjellig avhengig av typen utdatafil som kreves.