Linienglättung hebt die wesentlichen Aussagen eines Plots hervor
Wenn Daten oder Messwerte in einem Plot dargestellt werden, gibt es oft Schwankungen und Ausreißer. Die Linienglättung zeigt eine Art gleitenden Mittelwert und macht die Kernaussage eines Plots verständlicher. ggplot2 stellt alle nötigen Werkzeuge dafür bereit.
Es gibt verschiedene Arten der Linienglättung, etwa linear smooths (lm), generalized linear smooths (glm) und loess. Letzteres ist für Punktdiagramme am gebräuchlichsten. Die Abkürzungen loess steht für „locally weighted scatterplot smoothing“, also „lokal gewichtete Glättung von Punktdiagrammen“. Es wird von lokal gesprochen, weil jeder geglättete Wert mit Hilfe der Nachbarpunkte berechnet wird, die sich innerhalb eines bestimmten Datenbereichs von Werten befinden.
Das Beispiel zeigt den Kursverlauf des Britischen Pfunds der vergangenen zwei Jahre. Der Brexit Ende Juni 2016 ist gut zu erkennen. Die Daten stammen von der Seite http://www.ecb.europa.eu/stats/exchange/eurofxref/html/index.en.html und können hier heruntergeladen werden.
library(ggplot2) library(extrafont) library(scales) euro <- read.csv("daten/exchange.csv") euro <- euro[!is.na(euro$s1),] euro$s1 <- 1/euro$s1 euro <- euro[as.Date(euro$date) > as.Date("2014-10-20"), ] tage<-as.Date(euro$date) werte <- euro$s1 ggplot(aes(x = tage, y = werte), data = euro)+ geom_line(stat = "identity", color = "grey")+ geom_smooth(method = "loess", span = 1/25, color = rgb(255,97,0,100, maxColorValue = 255))+ theme_bw()+ ggtitle("Wechselkurs Britisches Pfund/Euro")+ scale_y_continuous(breaks = seq(1.1, 1.45, 0.05))+ theme(plot.title = element_text(size=16, family="Lato Black"), axis.title=element_blank())+ scale_x_date(breaks = date_breaks("2 months"), labels = date_format("%b\n%Y"))
Das Skript: Nötig sind die beiden Libraries ggplot2
und scales
, extrafont
hingegen ist optional und dient nur dem Laden der Schriftart "Lato". Nun wird die CSV-Datei eingelesen und der Variablen euro
zugewiesen. Es folgt die Enfernung von NAs und die Umrechnung der Kurswerte auf den Wert des Pfunds statt des Euros. Schließelich wird der Zeitrahmen begrenzt auf zwei Jahre und das Ganze als Datum der Variablen tage
und die Kurswerte der Variablen werte
zugewiesen.
Es folgt der eigentliche Plot mit der Angabe der x- und y-Werte sowie der Datenbasis. Dann zeichnet geom_line()
die Linie mit den tatsächlichen Wechselkursen. Die Linienglättung erfolgt mit geom_smooth()
. Der Parameter method = "loess"
ist eigentlich überflüssig, da dies die Standardeinstellung bei Datensätzen mit weniger als 1000 Einzeldaten ist. Der Parameter span
gibt an, wie genau die geglättete Line den Originalwerten folgt, und color
legt die Farbe fest. Die vollständige Syntax lautet:
geom_smooth(mapping = NULL, data = NULL, stat = "smooth", position = "identity", ..., method = "auto", formula = y ~ x, se = TRUE, na.rm = FALSE, show.legend = NA, inherit.aes = TRUE) stat_smooth(mapping = NULL, data = NULL, geom = "smooth", position = "identity", ..., method = "auto", formula = y ~ x, se = TRUE, n = 80, span = 0.75, fullrange = FALSE, level = 0.95, method.args = list(), na.rm = FALSE, show.legend = NA, inherit.aes = TRUE)
Die Zeile scale_x_date(breaks = date_breaks("2 months"), labels = date_format("%b\n%Y"))
sorgt für eine zweizeilige X-Achsenbeschriftung im Abstand von zwei Monaten.
Schreibe einen Kommentar