library("readr")
<- read_delim("datasets/infovis/temperature_2005.csv", ",") temperature
Infovis 2: Übung optional
Für die heutige Übung brauchst du den Datensatz temperature_2005.csv. Dabei handelt es sich wieder um Teperaturwerte verschiedener Stationen, diesmal aus dem Jahr 2005. Das Datum ist so formatiert, dass R
(isbesondere read_delim
) es korrekt als datetime
erkennen und als POSIXct
einlesen sollte.
Aufgabe 1
Mache aus der wide table eine long table, die wie folgt aussieht.
time | station | temperature |
---|---|---|
2005-01-01 | ALT | 1.3 |
2005-01-01 | BUS | 1.5 |
2005-01-01 | GVE | 1.1 |
2005-01-01 | INT | 0.2 |
2005-01-01 | OTL | 2.2 |
2005-01-01 | LUG | 1.7 |
Importiere anschliessend den Datensatz temperature_2005_metadata.csv und verbinde die beiden Datensätze mit einem left_join
via station
(bzw. stn
).
Aufgabe 2
Erstelle ein Scatterplot (time
vs. temperature
), wobei die Punkte aufgrund ihrer Meereshöhe eingefärbt werden sollen. Tiefe Werte sollen dabei blau eingefärbt werden und hohe Werte rot (scale_color_gradient
). Verkleinere die Punkte, um übermässiges Überplotten der Punkten zu vermeiden (size =
). Weiter sollen auf der x-Achse im Abstand von 3 Monaten der jeweilige Monat vermerkt sein (date_breaks
bzw. date_labels
von scale_x_datetime()
).
Aufgabe 3
Erstelle eine Zusatzvariabel Date
mit dem Datum der jeweiligen Messung ( mit as.Date
). Nutze diese Spalte, um die Tagesmitteltemperatur pro Station zu berechnen (mit summarise()
).
Um die Metadaten (Name
, Meereshoehe
, x
, y
) nicht zu verlieren, kannst du den Join aus der ersten Übung wieder ausführen. Alternativ (schneller aber auch schwerer zu verstehen) kannst du diese Variabeln innerhalb deines group_by
verwenden.
Aufgabe 4
Wiederhole nun den Plot aus der ersten Aufgabe mit den aggregierten Daten aus der vorherigen Aufgabe. Um die labels korrekt zu setzen, musst du scale_x_datetime
mit scale_x_date
ersetzen.
Aufgabe 5
Füge am obigen Plot eine schwarze, gestrichelte Trendlinie hinzu.
Aufgabe 6
Positioniere die Legende oberhalb des Plots (nutze dazu theme()
mit legend.position
).
Aufgabe 7 (optional, fortgeschritten)
Füge den Temperaturwerten auf der y-Ache ein °C
hinzu (siehe unten und studiere diesen Tipp zur Hilfe).
Aufgabe 8
Jetzt verlassen wir den Scatterplot und machen einen Boxplot mit den Temperaturdaten. Färbe die Boxplots wieder in Abhängigkeit der Meereshöhe ein.
- Beachte den Unterschied zwischen
colour =
undfill =
- Beachte den Unterschied zwischen
facet_wrap()
undfacet_grid()
facet_grid()
braucht übrigens noch einen Punkt (.
) zur Tilde (~
).- Beachte den Unterschied zwischen “
.~
” und “~.
” beifacet_grid()
- verschiebe nach Bedarf die Legende
Aufgabe 9
Als letzter wichtiger Plottyp noch zwei Übungen zum Histogramm. Erstelle ein Histogramm geom_histogram()
mit den Temperaturwerten. Teile dazu die Stationen in verschiedene Höhenlagen ein (Tieflage [< 400 m], Mittellage [400 - 600 m] und Hochlage [> 600 m]). Vergleiche die Verteilung der Temperaturwerte in den verschiedenen Lagen mit einem Histogramm.
Tip: Nutze cut
um die Stationen in die drei Gruppen aufzuteilen