Els gràfics de barres animats que es poden incrustar directament a una publicació de qualsevol lloc web són cada cop més populars. Mostren la dinàmica dels canvis de qualsevol característica durant un temps determinat i ho fan amb claredat. Vegem com crear-los amb R i paquets genèrics.
Aquests dos són extremadament necessaris. A més, caldrà tidyverse, conserge i bàscules per gestionar les dades, netejar la matriu i formatar en conseqüència.
Dades
El conjunt de dades original que utilitzarem en aquest projecte es descarrega del lloc web del Banc Mundial. Aquí estan - Dades del Banc Mundial. Les mateixes dades, si les necessiteu ja fetes, es poden descarregar des de carpetes del projecte.
Quin tipus d'informació és aquesta? La mostra conté el valor del PIB de la majoria dels països durant diversos anys (del 2000 al 2017).
Processament de dades
Utilitzarem el codi publicat a continuació per preparar el format de dades requerit. Netegem els noms de les columnes, convertim els números en un format de nombre i convertim les dades mitjançant la funció gather(). Desem tot el que rebem a gdp_tidy.csv per a un ús posterior.
Traçant un conjunt complet d'histogrames reals amb ggplot2.
Animeu histogrames estàtics amb els paràmetres desitjats mitjançant gganimate.
El pas final és renderitzar l'animació en el format desitjat, incloent GIF o MP4.
Càrrega de biblioteques
biblioteca (tidyverse)
biblioteca (gganimate)
Gestió de dades
En aquest pas, heu de filtrar les dades per obtenir els 10 països principals de cada any. Afegim diverses columnes que ens permetran mostrar una llegenda per a l'histograma.
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()
Construcció d'histogrames estàtics
Ara que tenim un paquet de dades en el format requerit, comencem a dibuixar histogrames estàtics. Informació bàsica: els 10 principals països amb PIB màxim per a l'interval de temps seleccionat. Elaborem gràfics per a cada any.
Crear trames amb ggplot2 és molt senzill. Com podeu veure a la secció de codi anterior, hi ha diversos punts clau amb la funció theme(). Són necessaris perquè tots els elements s'animin sense problemes. És possible que alguns d'ells no es mostrin si cal. Exemple: només es dibuixen les línies de la quadrícula vertical i les llegendes, però els títols dels eixos i altres components s'eliminen de l'àrea.
Animació
La funció clau aquí és transition_states(), uneix gràfics estàtics separats. view_follow() s'utilitza per dibuixar línies de quadrícula.
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")
Representació
Un cop creada i emmagatzemada l'animació a l'objecte animat, és hora de representar-la mitjançant la funció animate(). El renderitzador utilitzat a animate() pot ser diferent segons el tipus de fitxer de sortida requerit.