Visualization and Map
Dieses Tutorial zeigt Schritt für Schritt, wie man bestimmte Aufgaben wie das Einlesen von Shapefiles, das Erstellen von Layout-Karten, das Einfügen von Notch-Pfeilen, Skalenbalken, das Ändern von Farben und das Exportieren der Ergebnisse ausführt.
Die benötigten R-Pakete sind:
sf
ggplot2
ggspatial
Die benötigten Shapefiles sind:
- Luftbelastung_2009.shp
Vorbereitung¶
Der erste Teil des Tutorials zeigt, wie man die benötigten R-Pakete nstalliert und lädt. Es wird auch gezeigt, wie man das Arbeitsverzeichnis einstellt und Shapefiles einliest.
Installieren der benötigten Pakete¶
Wenn sie noch nicht schon installiert sind, werden hier drei R-Pakete
installiert: sf
, ggplot2
, und ggspatial
.
pkgs <- c("sf", "ggplot2", "ggspatial")
install.packages(pkgs[!pkgs %in% installed.packages()])
Laden der benötigten Pakete¶
Nachdem die Pakete installiert wurden, müssen sie noch geladen werden.
library(sf)
library(ggplot2)
library(ggspatial)
Das Arbeitsverzeichnis setzen¶
Das Arbeitsverzeichnis wird auf den Pfad der Daten gesetzt.
PATH TO DATA
muss angepasst werden.
Beachten Sie, dass auch dann eine Liste der Archive innerhalb des ausgewählten
Verzeichnisses erstellt wird.
path = "PFAD-ZU-DATEN"
setwd(path)
list.files(path, all.files= TRUE)
Einlesen der Shapefiles im Arbeitsverzeichnis¶
Hier wird unser Shapefile im Arbeitsverzeichnis eingelesen. Es wird empfohlen, den gesamten Pfad anzugeben.
shape <- st_read(file.path("PFAD-ZU-DATEN/Luftbelastung_2009.shp"))
Erstellen wir zunächst ein einfaches Diagramm.¶
plot(shape["PLR_NAME"])
Verarbeitung¶
Wir zeichnen die kontinuierliche Variable "PM25_2009_" (Name, der im Fenster "Environment" zu sehen ist).
Titel und Legende ändern, Bildunterschrift wird in das endgültige Bild übernommen (Name und Datum ändern)
ggplot() +
geom_sf(data = shape, aes(fill = PM25_2009_)) +
scale_fill_gradient(low = "aliceblue", high = "red", na.value = NA)+ #Für mehr Farben: https://www.datanovia.com/en/blog/awesome-list-of-657-r-color-names/
labs(title = "PM 2.5 - Berlin 2009", fill= "PM 2.5", caption = "A Trumper, 11.04.2023") +
theme_bw() + #für weitere Themen: https://ggplot2.tidyverse.org/reference/ggtheme.html
coord_sf(expand = TRUE) + xlab("Longitude") + ylab("Latitude") +
annotation_scale(location = "bl", width_hint = 0.2) +
annotation_north_arrow(location = "tr", which_north = "true", #Standortoptionen sind: "bl", "tl", "br", "tr" (https://bookdown.org/brianwood1/QDASS/simple-static-maps.html)
pad_x = unit(0.1, "in"), pad_y = unit(0.1, "in"), #Zahlen für verschiedene Standorte anpassen
style = north_arrow_nautical) #verschiedene Stile: north_arrow_orienteering, north_arrow_fancy_orienteering, north_arrow_minimal, north_arrow_nautical
für weitere Informationen: https://r-spatial.org/r/2018/10/25/ggplot2-sf.html
Karte exportieren¶
ggsave() ist eine praktische Funktion zum Speichern eines Plots. Standardmäßig wird der zuletzt angezeigte Plot gespeichert, wobei die Größe des aktuellen Grafikgeräts verwendet wird. Außerdem wird anhand der Erweiterung der Typ des Grafikgeräts erraten. Die Datei wird in unserem Ordner "setwd" gespeichert.
ggsave("continuous_map.png", width = 10, height = 10, dpi = 400)
dpi = Plot-Auflösung. Akzeptiert auch eine String-Eingabe: "retina" (320), "print" (300), or "screen" (72).
Wir werden nun die diskrete Variable darstellen "PM25_200_1" (Name, der im Fenster "Environment" zu sehen ist)
Hierfür werden wir ein Layout für eine diskrete Skala erstellen.
cols <- c("gering" = "darkgreen", "mittel" = "darkolivegreen3", "hoch" = "orange", "sehr hoch" = "red")
#Für mehr Farben: https://www.datanovia.com/en/blog/awesome-list-of-657-r-color-names/
Titel und Legende ändern, Bildunterschrift wird in das endgültige Bild übernommen (Name und Datum ändern)
ggplot() +
geom_sf(data = shape, aes(fill = PM25_200_1)) +
scale_fill_manual(values = cols, breaks=c('gering', 'mittel', 'hoch',"sehr hoch"))+ #Hier verwenden wir die Farben, die wir zuvor definiert haben, und legen die Reihenfolge fest.
labs(title = "Grad Feinstaubbelastung in Berlin im Jahr 2009", fill= "Grad", caption = "A Trumper, 11.04.2023") +
theme_bw() + #für weitere Themen: https://ggplot2.tidyverse.org/reference/ggtheme.html
coord_sf(expand = TRUE) + xlab("Longitude") + ylab("Latitude") +
annotation_scale(location = "bl", width_hint = 0.2) +
annotation_north_arrow(location = "tr", which_north = "true", #Standortoptionen sind: "bl", "tl", "br", "tr" (https://bookdown.org/brianwood1/QDASS/simple-static-maps.html)
pad_x = unit(0.1, "in"), pad_y = unit(0.1, "in"), #Zahlen für verschiedene Standorte anpassen
style = north_arrow_nautical) #verschiedene Stile: north_arrow_orienteering, north_arrow_fancy_orienteering, north_arrow_minimal, north_arrow_nautical
Karte exportieren¶
Mit ggsave()
ggsave("discrete_map.png", width = 10, height = 10, dpi = 400)