Animované sloupcové grafy, které lze vložit přímo do příspěvku na jakékoli webové stránce, jsou stále populárnější. Zobrazují dynamiku změn jakýchkoli charakteristik v průběhu určitého času a činí to jasně. Podívejme se, jak je vytvořit pomocí R a generických balíčků.
Tito dva jsou nesmírně potřební. Kromě toho budou zapotřebí tidyverse, školník a váhy pro správu dat, vyčištění pole a odpovídající formátování.
Data
Původní datový soubor, který použijeme v tomto projektu, je stažen z webu Světové banky. Zde jsou - Data WorldBank. Stejná data, pokud je potřebujete hotová, lze stáhnout z složky projektu.
Co je to za informace? Vzorek obsahuje hodnotu HDP většiny zemí za několik let (od roku 2000 do roku 2017).
Zpracování dat
K přípravě požadovaného formátu dat použijeme níže uvedený kód. Vymažeme názvy sloupců, převedeme čísla do číselného formátu a převedeme data pomocí funkce collect(). Vše, co obdržíme, uložíme do gdp_tidy.csv pro další použití.
Vykreslení kompletní sady skutečných histogramů pomocí ggplot2.
Animujte statické histogramy s požadovanými parametry pomocí gganimate.
Posledním krokem je vykreslení animace v požadovaném formátu, včetně GIF nebo MP4.
Načítání knihoven
knihovna (uklizený)
knihovna (gganimate)
Správa dat
V tomto kroku musíte filtrovat data, abyste získali 10 nejlepších zemí pro každý rok. Přidejme několik sloupců, které nám umožní zobrazit legendu k histogramu.
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()
Vytváření statických histogramů
Nyní, když máme datový balíček v požadovaném formátu, začneme kreslit statické histogramy. Základní informace - top 10 zemí s maximálním HDP za zvolený časový interval. Pro každý rok vytváříme grafy.
Vytváření grafů pomocí ggplot2 je velmi jednoduché. Jak můžete vidět v části kódu výše, funkce theme() má několik klíčových bodů. Jsou nezbytné, aby se všechny prvky bez problémů oživily. Některé z nich se v případě potřeby nemusí zobrazit. Příklad: Jsou nakresleny pouze svislé čáry mřížky a legendy, ale nadpisy os a několik dalších komponent jsou z oblasti odstraněny.
animace
Klíčovou funkcí je zde transition_states(), která spojuje samostatné statické grafy. view_follow() se používá ke kreslení čar mřížky.
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")
Vykreslování
Jakmile je animace vytvořena a uložena v objektu anim, je čas ji vykreslit pomocí funkce animate(). Vykreslovací modul použitý v animate() se může lišit v závislosti na typu požadovaného výstupního souboru.