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)
diamondsUm 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:
Verschiedene 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")