Für die Übungsaufgaben gehen wir zu dem diamonds
Datensatz über. Der Datensatz befasst sich mit Preis, Qualität und
weiteren Eigenschaften von knapp 54.000 Diamanten.
Zuerst geben wir wieder die folgenden Befehle ein, um die Bibliothek
tidyverse
zu laden und den Datensatz einzusehen:
library(tidyverse)
diamonds
Um mehr über den Datensatz zu erfahren, geben Sie wieder den
Hilfsbefehl ?diamonds
ein.
Erstellen Sie eine Grafik von den Variablen carat
und price
des diamonds
Datensatzes, wobei Sie
die Datenpunkte nach der Kategorie clarity
färben.
Erstellen Sie eine weitere Grafik von den Variablen
carat
und price
des diamonds
Datensatzes, wobei Sie ein facet
für die Kategorie
clarity
hinzufügen. Worin liegen die Vor- und Nachteile der
Farb-Aesthetics und der Nutzung von facets
?
Verwenden Sie nun als facet
eine kontinuierliche
Variable wie z. B. table
. Was passiert hier?
Verwenden Sie nun ein facet
mit zwei Variablen
cut
und clarity
, um die Variablen
carat
und price
zu vergleichen. Was können Sie
dieser Grafik entnehmen?
Erstellen Sie eine passende Grafik, um die Verteilungen von
cut
und price
darzustellen. Denken Sie auch an
passende Gruppierungen, Farben und Positionen!
Erstellen Sie die folgenden Grafiken:
cut
und fügen Sie ein facet
mit der Variable
clarity
ein.labs()
und verschieben Sie die Legende nach unten mit
theme()
.carat
und price
des
diamonds
Datensatzes, wobei Sie die Datenpunkte nach der
Kategorie clarity
färben.ggplot(data = diamonds) +
geom_point(mapping = aes(x = carat, y = price, color = clarity))
carat
und
price
des diamonds
Datensatzes, wobei Sie ein
facet
für die Kategorie clarity
hinzufügen.
Worin liegen die Vor- und Nachteile der Farb-Aesthetics und der Nutzung
von facets
?ggplot(data = diamonds) +
geom_point(mapping = aes(x = carat, y = price, color = clarity)) +
facet_wrap(facets = ~ clarity)
Durch die Gitter werden die Zusammenhänge und Trends der einzelnen
Kategorien (hier clarity
) deutlicher und können auch direkt
zwischen den Kategorien verglichen werden.
Die gemeinsame Grafik, wo lediglich die Datenpunkte nach der
clarity
eingefärbt werden, wirkt wesentlich
unübersichtlicher, um die Kategorien unter sich zu vergleichen, obgleich
der gemeinsame Trend sichtbar ist.
Insbesondere für größere Datensätze mit mehreren Kategorien bieten sich die Gitter an.
facet
eine kontinuierliche Variable wie z. B.
table
. Was passiert hier?ggplot(data = diamonds) +
geom_point(mapping = aes(x = carat, y = price, color = clarity)) +
facet_wrap(facets = ~ table)
Sie sehen, dass ein Gitter für jeden Wert von table
erstellt wird. Das ist möglich und zeigt beispielsweise, dass es für
eine Werte von table
sehr viele Diamanten gibt (z. B. bei
56) und bei anderen sehr wenige (z. B. 43). Interessanterweise liegen
viele hochwertige Diamanten (mit hohem clarity
Wert) meist
bei den Werten 54, 55, 56, 57, 58, 59, 60, 61 und 63 für
table
.
Die Variable table
bezieht sich hierbei auf das
Verhältnis der Breite der obersten Stelle und der weitesten Stelle eines
Diamanten.
Bei Kontinuierlichen Werten entstehen jedoch meistens eine große Anzahl an Gitter, was für die Übersichtlichkeit nicht unbedingt von Vorteil ist.
facet
mit zwei Variablen cut
und
clarity
, um die Variablen carat
und
price
zu vergleichen. Was können Sie dieser Grafik
entnehmen?Bei der Nutzung von facet_grid()
muss darauf geachtet
werden, dass eine Variable vor der Tilde ~
und eine danach
steht (in diesem Zusammenhang die y-und x-Achse). Testen Sie, was
passiert, wenn Sie die Variable tauschen!
ggplot(data = diamonds) +
geom_point(mapping = aes(x = carat, y = price, color = clarity), shape = 11) +
facet_grid(facets = cut ~ clarity)
Wenn eine der Variablen in facet_grid()
ausgelassen oder
durch einen Punkt .
ersetzt werden würde, würde ebenfalls
ein Gitter für nur eine Variable gezeichnet werden. Hierbei würde sich
der Einfachheit facet_wrap
anbieten.
Allgemein ist in der Grafik der Zusammenhang von Preis und Karat von Diamanten dargestellt.
Die Grafik sieht zwar zunächst etwas überwältigend aus, zeigt jedoch
lediglich die Aufteilung von Preis price
und Karat
karat
anhand der Kategorien für Klarheit
clarity
(y-Achse) und Qualität cut
(x-Achse).
Wir sehen beispielsweise (von oben nach unten), dass die Verteilung für die verschiedenen Qualitätsstufen relativ ähnlich aussehen.
Eine Ausnahme fällt auf: Die Diamanten mit einer hohen Klarheit
(VVS1
und IF
) und einer geringen Qualität
(fair
) scheinen weniger häufig und weniger weit verteilt zu
sein, d. h. sie weisen scheinbar wenig Karat und einen geringen Preis
auf.
Ebenfalls scheinen häufiger höhere Preise durch eine höhere Qualität erzielt zu werden.
Bei dem Vergleich der Klarheit sehen wir, dass die einzelnen Stufen
sich ähnlich verteilen (von links nach rechts), jedoch die Diamenten mit
geringer Klarheit I1
häufiger einen höheren Karatwert
aufweisen.
cut
und
price
darzustellen. Denken Sie auch an passende
Gruppierungen, Farben und Positionen!Zuerst müssen wir uns überlegen, um was für Daten es sich handelt.
Bei cut
handelt es sich um qualtitative Daten und bei
price
um quanitative Daten, sodass sich für
cut
beispielsweise ein Balkendiagramm anbieten würde und
für price
ein Boxplot oder ein Histogramm.
ggplot(data = diamonds, aes(x = cut, fill = clarity)) +
geom_bar(position = "dodge")
ggplot(data = diamonds, aes(x = cut, fill = clarity)) +
geom_bar() +
coord_flip()
ggplot(data = diamonds, aes(x = cut, fill = clarity)) +
geom_bar() +
coord_polar()
ggplot(data = diamonds, aes(x = price, fill = cut)) +
geom_histogram(bins = 30)
ggplot(data = diamonds, aes(x = cut, y = price, fill = cut)) +
geom_boxplot()
ggplot(diamonds, mapping = aes(x = carat, y = price)) +
geom_point() +
geom_smooth()
ggplot(diamonds, mapping = aes(x = carat, y = price)) +
geom_point() +
geom_smooth(mapping = aes(group = cut), se = FALSE)
ggplot(diamonds, mapping = aes(x = carat, y = price, color = cut)) +
geom_point() +
geom_smooth(se = FALSE)
ggplot(diamonds, mapping = aes(x = carat, y = price)) +
geom_point(mapping = aes(color = cut)) +
geom_smooth(se = FALSE)
ggplot(diamonds, mapping = aes(x = carat, y = price)) +
geom_point(mapping = aes(color = cut)) +
geom_smooth(se = FALSE)
ggplot(diamonds, mapping = aes(x = carat, y = price)) +
geom_point(mapping = aes(color = cut))
cut
und fügen Sie ein
facet
mit der Variable clarity
ein. Ändern Sie
zusätzlich den Titel und die Achsenbeschriftungen mit
labs()
und verschieben Sie die Legende nach unten mit
theme()
.ggplot(data = diamonds, aes(x = cut, fill = clarity)) +
geom_bar() +
facet_wrap(facets = ~ clarity) +
labs(x = "Qualität", y = "Absolute Häufigkeit",
title = "Qualität von Diamanten unter Betrachtung der Klarheit") +
theme(legend.position = "bottom")