|
Explorative Datenanalyse mit R The R Bootcamp |
|
from today.com
In diesem Practical wirst du üben mit ggplot2 Grafiken zu erstellen.
Am Ende des Practicals wirst du wissen wie man:
geoms verwendet.Öffne dein TheRBootcamp R project. Es sollte die Ordner 1_Data und 2_Code enthalten.
Öffne ein neues R Skript. Schreibe deinen Namen, das Datum und “Plotting Practical” als Kommentare an den Anfang des Skripts.
## NAME
## DATUM
## Plotting Practical
Speichere das neue Skript unter dem Namen plotting_practical.R im 2_Code Ordner.
Lade tidyverse und ggthemes.
Verwende die read_csv() Funktion um den Datensatz mcdonalds als Objekt mcdonalds einzulesen. Denke an den Trick mit den Anführungszeichen.
Printe den Datensatz. Wurden alle Variablentypen korrekt identifiziert?
Verwende summary() um einen weiteren Überblick über die Daten zu bekommen.
In diesem Abschnitt wirst du den folgenden Plot Schritt-für-Schritt zusammenbauen.

ggplot() um einen leeren Plot für den mcdonalds Datensatz zu starten.ggplot(data = mcdonalds)
mapping-Argument und die aes()-Helferfunltion um Calories der x-Achse und SaturatedFat der y-Achse zuzuweisen.ggplot(data = mcdonalds,
mapping = aes(x = XX, y = XX))
Ergänze geom_point() mit + um Punkte zu plotten.
Verwende das col Argument in aes() um die Farbe nach der Variable Category variieren zu lassen.
ggplot(mcdonalds, aes(x = XX, y = XX, col = XX)) +
geom_point()
+ geom_smooth() um eine gefittete Linie zu ergänzen.ggplot(mcdonalds, aes(x = XX, y = XX, col = XX)) +
geom_point() +
geom_smooth()
geom_smooth() auf "black" setzt.ggplot(mcdonalds, aes(x = XX, y = XX, col = XX)) +
geom_point() +
geom_smooth(col = "XX")
R versteht eine grosse Menge von Farbworten. Lasse dir diese mit colors() (ohne Argumente) anzeigen. Alle aufgeführten character Werte können verwenden werden um die entsprechende Farbe zu definieren.
Verwende nun labs() um den Plot angemessen zu annotieren.
ggplot(mcdonalds, aes(x = XX, y = XX, col = XX)) +
geom_point() +
geom_smooth(col = "XX") +
labs(title = "XX",
subtitle = "XX",
caption = "XX")
xlim(), eine einfache Version von scale_x_continuous() (mehr dazu später), um die x-Achse auf die Werte 0 und 1250 zu begrenzen.ggplot(mcdonalds, aes(x = XX, y = XX, col = XX)) +
geom_point() +
geom_smooth(col = "XX") +
labs(title = "XX",
subtitle = "XX",
caption = "XX") +
xlim(XX, XX)
theme_minimal() um die Ästhetik des Plots anzupassen. Auch hierzu mehr später.geomsCalories (y-Achse) in Abhängigkeit der Category (x-Achse) zu kreieren. Violinenplots zeigen mit ihrer Dicke die jeweilige relative Häufigkeit der Werte an - in diesem Fall der Kalorien. Verwende für das Argument fill ebenfalls Category, um die Violinen entsprechend einzufärben.ggplot(data = mcdonalds,
aes(x = XX, y = XX, fill = XX)) +
geom_violin()
labs() einen angemessenen Titel (title) und Untertitel (subtitle).ggplot(data = mcdonalds, aes(x = XX, y = XX, fill = XX)) +
geom_violin() +
labs(title = "XX",
subtitle = "XX")
guides(fill = FALSE), so dass keine Legende gezeigt wird.ggplot(data = mcdonalds, aes(x = XX, y = XX, fill = XX)) +
geom_violin() +
labs(title = "XX",
subtitle = "XX") +
guides(fill = FALSE)
Verwende geom_jitter() um Punkte über die Violinen zu plotten. Setze in der Funktion width = 1 und alpha = .5.
Probiere ein paar Sachen aus:
width oder alpha in geom_jitter().fill = Category.geom_boxplot() um stattdessen einen Box-Plot zu plotten.geom_textIn dieser Sektion wirst du den folgenden Plot unter Verwendung von geom_text() kreieren.

ggplot(mcdonalds, aes(x = XX,
y = XX,
col = XX)) +
geom_point() +
xlim(XX, XX) +
ylim(XX, XX) +
theme_minimal() +
labs(title = "XX")
Nun ergänze geom_text() so dass für jeden Punkt das entsprechende Item Label angezeigt wird.
Wo sind die Labels? Ah, du hast ggplot nicht gesagt welche Spalte die Information beinhaltet, die in den Labels stehen soll. Behebe dieses Problem indem du innerhalb der aes() Funktion dem Argument label die Spalte Item zuweist. Führe den Code nochmal aus. Jetzt solltest du viele labels sehen!
Passe geom_text() an in dem du col auf black, check_overlap auf TRUE, und hjust auf left setzt.
Verwende nun das data Argument in geom_text() und weise ihm einen gefilterten Auschnitt des mcdonalds Datensatzes zu, nämlich data = mcdonalds %>% filter(Calories > 1100). Schau was passiert.
Probiere ein paar Sachen aus:
Verwende das size Argument in aes(), so dass die Grösse der Punkte den Calories entspricht.
Versuche andere theme_* Funktionen. Z.B. theme_excel() oder theme_economist() aus dem ggthemes Paket.
stat_summary() Funktion können auch direkt einfache Statistiken berechnet und geplotted werden. Verwende den folgenden Code um die Calories (y-Achse) gegen Categories zu plotten. Annotiere angemessen.ggplot(XX, aes(x = XX, y = X)) +
stat_summary(geom = "bar",
fun.y = "mean") +
labs(title = "XX",
subtitle = "XX")

"median" anstatt "mean".geom_point(), geom_count(), oder geom_jitter().mcdonalds Datensatz. Weitere geoms und alles weitere findest du hier# Lade tidyverse
library(tidyverse)
# Printe die mpg Daten
mpg
# Beginne den Plot
ggplot(data = mpg)
# Ergänze das mapping, d.h. bestimme x und y
ggplot(data = mpg,
mapping = aes(x = displ, y = hwy))
# Ergänze Punkte
ggplot(data = mpg,
mapping = aes(x = displ, y = hwy)) +
geom_point()
# Ergänze nach Häufigkeit skalierte Punkte
ggplot(data = mpg,
mapping = aes(x = displ, y = hwy)) +
geom_count()
# Assigne class zum col Argument und füge labels mit labs() hinzu
ggplot(data = mpg,
mapping = aes(x = displ, y = hwy, col = class)) +
geom_point(size = 3, position = 'jitter') +
labs(x = "Hubraum in Litern",
y = "Autobahn Meilen pro Gallone",
title = "MPG Datensatz",
subtitle = "Autos mit groesserem Hubraum fahren wneiger Meilen",
caption = "Quelle: mpg Datensatz aus ggplot2")
# Ergänze eine Kurve für jede Klasse
ggplot(data = mpg,
mapping = aes(x = displ,
y = hwy,
color = class)) +
geom_point(size = 3, alpha = .9) +
geom_smooth(method = "lm")
# Ergänze eine Kurve für alle Klassen zusammen
ggplot(data = mpg,
mapping = aes(x = displ,
y = hwy,
color = class)) +
geom_point(size = 3, alpha = .9) +
geom_smooth(col = "blue", method = "lm")
# Kombination von verschiedenen Elementen
ggplot(data = mpg,
mapping = aes(x = cty, y = hwy)) +
geom_count(aes(color = manufacturer)) +
geom_smooth() +
geom_text(data = filter(mpg, cty > 25),
aes(x = cty,y = hwy,
label = rownames(filter(mpg, cty > 25))),
position = position_nudge(y = -1),
check_overlap = TRUE,
size = 5) +
labs(x = "Hubraum in Litern",
y = "Autobahn Meilen pro Gallone",
title = "MPG Datensatz",
subtitle = "Autos mit groesserem Hubraum fahren wneiger Meilen",
caption = "Quelle: mpg Datensatz aus ggplot2")
| File | Rows | Columns |
|---|---|---|
| mcdonalds.csv | 260 | 24 |
First 5 rows and columns of mcdonalds.csv
| Category | Item | ServingSize | Calories | CaloriesfromFat |
|---|---|---|---|---|
| Breakfast | Egg McMuffin | 4.8 oz (136 g) | 300 | 120 |
| Breakfast | Egg White Delight | 4.8 oz (135 g) | 250 | 70 |
| Breakfast | Sausage McMuffin | 3.9 oz (111 g) | 370 | 200 |
| Breakfast | Sausage McMuffin with Egg | 5.7 oz (161 g) | 450 | 250 |
| Breakfast | Sausage McMuffin with Egg Whites | 5.7 oz (161 g) | 400 | 210 |
| Paket | Installation |
|---|---|
tidyverse |
install.packages("tidyverse") |
ggthemes |
install.packages("ggthemes") |