1.8 ggplot2 & Karten in R
1.8.1 Hintergrund
Im Laufe des Kurses haben Sie wiederholt ggplot2 verwendet, um verschiedene Objekte darzustellen. Heute werden wir den Kurs dazu nutzen, das Potenzial von ggplot2 für Abbildungen Karten weiter zu erlernen.
Los gehts!
1.8.2 Lernziele
Nach dieser Übungseinheit könnt ihr:
die wichtigsten Funktionen zur Anpassung von Plots in ggplot2 bei der Darstellung von räumlichen Daten nennen
einfache Abbildungen mit ggplot2 erstellen.
ansprechende Plots von räumlichen Objekten in ggplot2 erzeugen
1.8.3 Inhalt
Die “grammar of graphics” ist ein von Leland Wilkinson eingeführtes Konzept, das die Komponenten und Prinzipien bei der Erstellung von Datenvisualisierungen beschreibt. Sie bietet eine Reihe von Richtlinien für die Zerlegung von Visualisierungen in Schichten, die Zuordnung von Variablen zu ästhetischen Eigenschaften und die Erleichterung der explorativen Datenanalyse.
Zu den wichtigsten Komponenten der Grammatik der Grafik gehören:
- Data: Der Datensatz, der die Variablen von Interesse enthält.
- Aesthetics: Die visuellen Eigenschaften, die die Variablen darstellen, wie Farbe, Form und Größe.
- Geometries: Die geometrischen Formen, die zur Darstellung von Datenpunkten verwendet werden, wie z. B. Punkte, Linien und Balken.
- Scales: Die Zuordnungen zwischen Datenwerten und ästhetischen Eigenschaften, die eine genaue Darstellung ermöglichen.
- Facets: Aufteilung der Daten in Teilmengen und Erstellung separater Visualisierungen für jede Teilmenge.
- Statistics: Transformieren der Daten, um neue Variablen zu erstellen oder Daten innerhalb von Gruppen zusammenzufassen.
- Coordinates: Das Koordinatensystem, das bestimmt, wie Datenpunkte im Raum platziert werden.
- Themes: Der allgemeine visuelle Stil und das Aussehen des Diagramms.
1.8.4 Literatur
Wickham H, Cetinkaya-Rundel M & Grolemund G (2023) R for Data Science. Kapitel 1 & 9.
1.8.6 Tutorial
1.8.6.1 Einrichten der Umgebung, und laden von libraries und Daten
Ladet als erstes die nötigen libraries. Für die Grundlagen verwenden wir wiederden palmerpenguins Datensatz.
1.8.6.2 Streudiagramms
Ein Streudiagramm ist eine nützliche Visualisierung, um die Beziehung zwischen zwei kontinuierlichen Variablen zu untersuchen. Wir können die Funktion geom_point
verwenden, um ein Streudiagramm in ggplot2 zu erstellen.
Erstellen wir ein Streudiagramm des Pinguin-Datensatzes, indem wir die Schnabellänge auf die x-Achse und die Körpermasse auf die y-Achse abbilden.
1.8.6.3 Erstellen eines Balkendiagramms
Ein Balkendiagramm ist eine gängige Visualisierung für den Vergleich kategorischer Variablen oder die Zusammenfassung von Daten innerhalb von Gruppen. Wir können die Funktion geom_bar() verwenden, um ein Balkendiagramm in ggplot2 zu erstellen.
Erstellen wir ein Balkendiagramm des Pinguin-Datensatzes, das die Anzahl der Pinguine nach Arten visualisiert.
1.8.6.4 Box-Plots
Ein Boxplot ist nützlich, um die Verteilung einer kontinuierlichen Variable innerhalb verschiedener Kategorien zu visualisieren. Wir können die Funktion geom_boxplot() verwenden, um einen Boxplot in ggplot2 zu erstellen.
Erstellen wir einen Boxplot des Pinguin-Datensatzes, der die Verteilung der Körpermasse für jede Art zeigt.
1.8.6.5 Plots anpassen
ggplot2 ermöglicht eine umfangreiche Anpassung von Plots, einschließlich Änderung der Ästhetik, Hinzufügen von Beschriftungen und Anpassung von Themen. Wir gucken uns jetzt noch einige Anpassungsoptionen für unsere Plots an. Ändern der Ästhetik
Wir können ästhetische Eigenschaften wie Farbe, Form und Größe ändern, um zusätzliche Variablen in unseren Diagrammen darzustellen. Ändern wir das Streudiagramm, um die Punkte je nach Art einzufärben.
1.8.6.6 Hinzufügen von Beschriftungen
Wir können unseren Diagrammen informative Beschriftungen hinzufügen, einschließlich Achsenbeschriftungen, einen Titel und Beschriftungen. Fügen wir dem Streudiagramm Beschriftungen hinzu.
1.8.6.7 Themes anpassen
Ihr könnt verschiedene Themen auf eure Diagramme anwenden, um das Erscheinungsbild zu verändern. Wenden wir das Thema theme_minimal() auf unser Streudiagramm an. Eine Übersicht mit ggplot2 verfügbarer Themen findet ihr zum Beispiel hier: https://ggplot2.tidyverse.org/reference/ggtheme.html.
# theme
plot_with_theme <- ggplot(penguins, aes(x = bill_length_mm, y = body_mass_g, color = species)) +
geom_point() +
labs(x = "Bill Length (mm)",
y = "Body Mass (g)",
title = "Scatter Plot of Bill Length and Body Mass") +
theme_minimal()
# Display the scatter plot with the applied theme
plot_with_theme
1.8.6.8 Karten mit ggplot2
Load the necessary libraries.
Als Ausgangspunkt werden wir ggplot verwenden, um ein einfaches Diagramm mit dem world
Datensatz aus dem Paket spData
zu erstellen.
Gut, aber weder informativ noch visuell ansprechend. Wir können Farbskalen verwenden, um eine dritte Variable darzustellen. Ihr könnt eine kontinuierliche Farbskala für kontinuierliche Variablen (in diesem Fall die Lebenserwartung) und eine kategorische Skala für kategorische Variablen verwenden. Beachtet, dass ihr Füllung und Farbe (die Umrandungslinien) separat ändern könnt. Wenn wir nichts angeben, wählt ggplot die Standardfarben.
# Kontinuierliche Variable
ggplot()+
geom_sf(data = world, aes(color = lifeExp, fill = lifeExp))
# Kategorische Variable
ggplot()+
geom_sf(data = world, aes(color = continent, fill = continent))
Es gibt eine Vielzahl von Optionen zur Anpassung der Farbgebung. Zum Beispiel über das viridis-Paket für kontinuierliche Variablen oder colour brewer für kategorische Variablen.
# Kontinuierliche Variable
ggplot()+
geom_sf(data = world, aes(fill = lifeExp))+
scale_fill_viridis_b()
# Kategorische Variable
ggplot()+
geom_sf(data = world, aes(fill = continent, color = continent))+
scale_fill_brewer(palette = "Accent")+
scale_color_brewer(palette = "Accent")
Mit verschiedenen Funktionen können wir dem Plot einzelne Elemente hinzufügen.
ggplot()+
geom_sf(data = world, aes(fill = continent, color = continent))+
ggtitle("Continents of the world")+
xlab("Longitude")+
scale_fill_brewer(palette = "Accent")+
scale_color_brewer(palette = "Accent")
Ihr könnt das allgemeine Erscheinungsbild mit der theme
Funktion.
ggplot()+
geom_sf(data = world, aes(fill = continent, color = continent))+
ggtitle("Continents of the world")+
xlab("Longitude")+
scale_fill_brewer(palette = "Accent")+
scale_color_brewer(palette = "Accent")+
theme(legend.title = element_blank(),
axis.title = element_text(size = 16),
legend.position = "bottom")
Es gibt mehrere voreingestellte Themen, die ihr mit theme
kombinieren könnt.
ggplot()+
geom_sf(data = world, aes(fill = continent, color = continent))+
ggtitle("Continents of the world")+
xlab("Longitude")+
scale_fill_brewer(palette = "Accent")+
scale_color_brewer(palette = "Accent")+
theme(legend.title = element_blank(),
legend.position = "bottom")
theme_bw()
Eine weitere wichtige Option ist die Aufteilung eines Plots nach einer anderen Variable (“facetting”), d. h. für jede Variable wird ein eigener Plot erstellt.
ggplot()+
geom_sf(data = world, aes(fill = lifeExp, color = lifeExp))+
ggtitle("Continents of the world")+
xlab("Longitude")+
scale_fill_viridis_c(option = "magma")+
scale_color_viridis_c(option = "magma")+
theme(legend.title = element_blank(),
legend.position = "bottom")+
theme_bw()+
facet_wrap(continent~.)
1.8.7 Aufgaben
Schreibt einen Einleitungsparagraph zum Thema der heutigen Übung.
Erstellt ein Streudiagramm longitude v. latitude, und färbt die Punkte für die verschiedenen User ein.
Erstellt ein Balkendiagramm mit der Anzahl der Fundpunkte und Taxa je User.
Ladet die Verbreitungsinformationen von POWO und GBIF (von letzter Woche) in R & erstellt einen publikationsfähige Karte mit der Verbreitung eurer Gruppe
Schreibt einen Reflexionsparagraphen: Welchen Teil der heute erlernten MEthodik verstehe ich/nicht, und warum?