Animierte Balkendiagramme, die direkt in einen Beitrag auf jeder Website eingebettet werden können, erfreuen sich immer größerer Beliebtheit. Sie zeigen die Dynamik von Veränderungen beliebiger Merkmale über einen bestimmten Zeitraum anschaulich an. Sehen wir uns an, wie man sie mit R und generischen Paketen erstellt.
Diese beiden sind äußerst notwendig. Darüber hinaus werden Tidyverse, Janitor und Scales benötigt, um die Daten zu verwalten, das Array zu bereinigen und entsprechend zu formatieren.
Daten
Der Originaldatensatz, den wir in diesem Projekt verwenden werden, wird von der Website der Weltbank heruntergeladen. Hier sind sie - Daten der Weltbank. Die gleichen Daten können, wenn Sie sie fertig benötigen, unter heruntergeladen werden Projektordner.
Was sind das für Informationen? Die Stichprobe enthält den BIP-Wert der meisten Länder für mehrere Jahre (von 2000 bis 2017).
Datenverarbeitung
Wir werden den unten veröffentlichten Code verwenden, um das erforderliche Datenformat vorzubereiten. Wir löschen die Spaltennamen, wandeln die Zahlen in ein Zahlenformat um und konvertieren die Daten mithilfe der Funktion „gather()“. Wir speichern alles, was wir erhalten, in gdp_tidy.csv zur weiteren Verwendung.
Zeichnen eines vollständigen Satzes tatsächlicher Histogramme mit ggplot2.
Animieren Sie statische Histogramme mit den gewünschten Parametern mit gganimate.
Der letzte Schritt besteht darin, die Animation im gewünschten Format zu rendern, einschließlich GIF oder MP4.
Laden von Bibliotheken
Bibliothek (aufräumen)
Bibliothek (ganimiert)
Datenmanagement
In diesem Schritt müssen Sie die Daten filtern, um die Top-10-Länder für jedes Jahr zu erhalten. Fügen wir mehrere Spalten hinzu, die es uns ermöglichen, eine Legende für das Histogramm anzuzeigen.
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()
Statische Histogramme erstellen
Nachdem wir nun über ein Datenpaket im erforderlichen Format verfügen, beginnen wir mit dem Zeichnen statischer Histogramme. Grundlegende Informationen – Top 10 Länder mit maximalem BIP für das ausgewählte Zeitintervall. Wir erstellen Diagramme für jedes Jahr.
Das Erstellen von Plots mit ggplot2 ist sehr einfach. Wie Sie im Codeabschnitt oben sehen können, gibt es mehrere wichtige Punkte bei der theme()-Funktion. Sie sind notwendig, damit alle Elemente problemlos animiert werden können. Einige davon werden ggf. nicht angezeigt. Beispiel: Es werden nur die vertikalen Gitterlinien und Legenden gezeichnet, aber die Achsentitel und mehrere andere Komponenten werden aus dem Bereich entfernt.
Анимация
Die Schlüsselfunktion hier ist transit_states(), sie fügt separate statische Diagramme zusammen. view_follow() wird zum Zeichnen von Gitterlinien verwendet.
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")
Rendern
Sobald die Animation erstellt und im Anim-Objekt gespeichert ist, ist es an der Zeit, sie mit der Funktion animate() zu rendern. Der in animate() verwendete Renderer kann je nach Art der erforderlichen Ausgabedatei unterschiedlich sein.