Laden Sie das Paket gapminder
(ggf. vorab installieren)
und laden Sie daraus den Datensatz gapminder
. Hier finden Sie weitere
Informationen zum Projekt Gapminder.
Tipp: Mit help(gapminder)
bekommen Sie mehr
Informationen zum Datensatz.
Hinweis: Beziehen Sie sich auf den Stoff dieses Buches: Ismay, C., & Kim, A. (2019). ModernDive—An Introduction to Statistical and Data Sciences via R. http://moderndive.com/.
Visualisieren Sie die Anzahl der Länder pro Kontinent mit einem geeigneten Diagramm!
Weisen Sie der Füllfarbe die Werte der Variablen zum Kontinent zu.
Ergänzen Sie + scale_fill_viridis_d()
. Was ändert
sich?
Laden Sie das Paket gapminder
(ggf. vorab installieren)
und laden Sie daraus den Datensatz gapminder
. Hier finden Sie weitere
Informationen zum Projekt Gapminder.
Tipp: Mit help(gapminder)
bekommen Sie mehr
Informationen zum Datensatz.
Erstellen Sie einen Boxplort für jedes Land im Datensatz, um die Verteilung der Lebenserwartung zu visualisieren.
Erstellen Sie einen Boxplort für jedes Kontinent im Datensatz, um die Verteilung der Lebenserwartung zu visualisieren.
Erstellen Sie einen Boxplort für jedes Kontinent im Datensatz, um die Verteilung der Lebenserwartung zu visualisieren. Dieses Mal sollen Sie aber vorab den Datensatz zusammenfassen, so dass ein (zeilen-)reduzierter Datensatz entsteht, der für jeden Kontinent eine Zeile umfasst. Wie sinnvoll ist dieses Vorgehen?
Erstellen Sie einen Boxplot pro Kontinent und weisen Sie der Füllfarbe die Variable zum Kontinent zu.
Hinweis: Beziehen Sie sich auf den Stoff dieses Buches: Ismay, C., & Kim, A. (2019). ModernDive—An Introduction to Statistical and Data Sciences via R. http://moderndive.com/.
Laden Sie das Paket gapminder
(ggf. vorab installieren)
und laden Sie daraus den Datensatz gapminder
. Hier finden Sie weitere
Informationen zum Projekt Gapminder.
Erstellen Sie ein Histogramm, um die Verteilung der Lebenserwartung zu skizzieren.
Teilen Sie das Histogramm in mehrere Facetten auf, entsprechend der Kontinente.
Erstellen Sie nun wieder ein Histogramm, aber fügen Sie bei
aes()
noch hinzu, dass die Füllfarbe zum Kontinent
zugeordnet werden soll.
Ersetzen Sie im letzten Diagramm das Geom “Histogram” durch das
Geom “density” (sog. “Dichtediagramm”, also geom_density
).
Reduzieren Sie das Alpha der Füllung auf 50%. Welche Variante
(Histogramm oder Dichtediagramm) ist sinnvoller, bzw. wann sinnvoller?
Warum?
Tipp: Mit help(gapminder)
bekommen Sie mehr
Informationen zum Datensatz.
Hinweis: Beziehen Sie sich auf den Stoff dieses Buches: Ismay, C., & Kim, A. (2019). ModernDive—An Introduction to Statistical and Data Sciences via R. http://moderndive.com/.
Laden Sie das Paket gapminder
(ggf. vorab installieren)
und laden Sie daraus den Datensatz gapminder
. Hier finden Sie weitere
Informationen zum Projekt Gapminder.
Tipp: Mit help(gapminder)
bekommen Sie mehr
Informationen zum Datensatz.
Logarithmieren Sie die Variable zum Bruttosozialprodukt und erstellen Sie auf dieser Basis das Diagramm erneut.
Interpretieren Sie dieses (zweite) Diagramm.
Die Punkte im Streudiagramm sind stark überlagert. Wie kann man diese “Overplotting” verringern?
Hinweis: Beziehen Sie sich auf den Stoff dieses Buches: Ismay, C., & Kim, A. (2019). ModernDive—An Introduction to Statistical and Data Sciences via R. http://moderndive.com/.
Laden Sie das Paket gapminder
(ggf. vorab installieren)
und laden Sie daraus den Datensatz gapminder
. Hier finden Sie weitere
Informationen zum Projekt Gapminder.
Bauen Sie das folgende Streudiagramm nach!
Tipp: Mit help(gapminder)
bekommen Sie mehr
Informationen zum Datensatz.
Hinweis: Beziehen Sie sich auf den Stoff dieses Buches: Ismay, C., & Kim, A. (2019). ModernDive—An Introduction to Statistical and Data Sciences via R. http://moderndive.com/.
In dieser Aufgaben analysieren wir den Datensatz
diamonds
, welcher Merkmale von Diamanten (wie Preis,
Schliffart etc.) auflistet. Hier ist ein Blick in den Datensatz:
## Rows: 53,940
## Columns: 10
## $ carat <dbl> 0.23, 0.21, 0.23, 0.29, 0.31, 0.24, 0.24, 0.26, …
## $ cut <ord> Ideal, Premium, Good, Premium, Good, Very Good, …
## $ color <ord> E, E, E, I, J, J, I, H, E, H, J, J, F, J, E, E, …
## $ clarity <ord> SI2, SI1, VS1, VS2, SI2, VVS2, VVS1, SI1, VS2, V…
## $ depth <dbl> 61.5, 59.8, 56.9, 62.4, 63.3, 62.8, 62.3, 61.9, …
## $ table <dbl> 55, 61, 65, 58, 58, 57, 57, 55, 61, 61, 55, 56, …
## $ price <int> 326, 326, 327, 334, 335, 336, 336, 337, 337, 338…
## $ x <dbl> 3.95, 3.89, 4.05, 4.20, 4.34, 3.94, 3.95, 4.07, …
## $ y <dbl> 3.98, 3.84, 4.07, 4.23, 4.35, 3.96, 3.98, 4.11, …
## $ z <dbl> 2.43, 2.31, 2.31, 2.63, 2.75, 2.48, 2.47, 2.53, …
diamonds
ist Teil von Tidyverse (genauer gesagt dem
Paket {{ggplot2}}
).
Hier ist ein Überblick über die deskriptiven, univariaten Statistiken:
Name | diamonds |
Number of rows | 53940 |
Number of columns | 10 |
_______________________ | |
Column type frequency: | |
factor | 3 |
numeric | 7 |
________________________ | |
Group variables | None |
Variable type: factor
skim_variable | n_missing | complete_rate | ordered | n_unique | top_counts |
---|---|---|---|---|---|
cut | 0 | 1 | TRUE | 5 | Ide: 21551, Pre: 13791, Ver: 12082, Goo: 4906 |
color | 0 | 1 | TRUE | 7 | G: 11292, E: 9797, F: 9542, H: 8304 |
clarity | 0 | 1 | TRUE | 8 | SI1: 13065, VS2: 12258, SI2: 9194, VS1: 8171 |
Variable type: numeric
skim_variable | n_missing | complete_rate | mean | sd | p0 | p25 | p50 | p75 | p100 | hist |
---|---|---|---|---|---|---|---|---|---|---|
carat | 0 | 1 | 0.80 | 0.47 | 0.2 | 0.40 | 0.70 | 1.04 | 5.01 | ▇▂▁▁▁ |
depth | 0 | 1 | 61.75 | 1.43 | 43.0 | 61.00 | 61.80 | 62.50 | 79.00 | ▁▁▇▁▁ |
table | 0 | 1 | 57.46 | 2.23 | 43.0 | 56.00 | 57.00 | 59.00 | 95.00 | ▁▇▁▁▁ |
price | 0 | 1 | 3932.80 | 3989.44 | 326.0 | 950.00 | 2401.00 | 5324.25 | 18823.00 | ▇▂▁▁▁ |
x | 0 | 1 | 5.73 | 1.12 | 0.0 | 4.71 | 5.70 | 6.54 | 10.74 | ▁▁▇▃▁ |
y | 0 | 1 | 5.73 | 1.14 | 0.0 | 4.72 | 5.71 | 6.54 | 58.90 | ▇▁▁▁▁ |
z | 0 | 1 | 3.54 | 0.71 | 0.0 | 2.91 | 3.53 | 4.04 | 31.80 | ▇▁▁▁▁ |
Betrachten Sie das Histogramm; welcher R-Code hat es erzeugt?
Für alle Diagramme gilt:
A
diamonds %>%
mutate(price = price/1000 %>% round) %>%
ggplot() +
aes(x = price) +
geom_histogram() +
geom_vline(aes(xintercept = mean(price))) +
theme_light() +
facet_wrap( ~ cut, scales = "free")
B
diamonds %>%
drop_na(cut, price) %>%
filter(cut %in% c("Fair", "Premium", "Ideal")) %>%
mutate(price = price/1000 %>% round) %>%
ggplot() +
aes(x = price) +
geom_histogram() +
geom_vline(aes(xintercept = median(price))) +
theme_light() +
facet_wrap( ~ cut, scales = "free")
C
diamonds %>%
drop_na(cut, price) %>%
filter(cut %in% c("Fair", "Premium", "Ideal")) %>%
ggplot() +
aes(x = price) +
geom_histogram() +
geom_vline(aes(xintercept = median(price)))
facet_wrap(cut)
D
diamonds %>%
drop_na(cut, price) %>%
filter(cut %in% c("Fair", "Premium", "Ideal")) %>%
ggplot() +
aes(x = price) +
geom_histogram() +
geom_vline(aes(xintercept = median(price))) +
theme_light() +
facet_wrap( ~ cut, scales = "free")
Welche der folgenden Aussagen zum Diagramm ist korrekt?
cut
wird hier als ordinale
Variable, also mit Ordnungsstruktur, verwendet.
cut
ist eine intervallskalierte
Variable.
Betrachten Sie die beiden Diagramm, A und B; sie zeigen die Verteilung des Preises von Diamanten in Abhängigkeit der Schliffart. Der vertikale Strich zeigt ein Maß der zentralen Tendenz. Welche der Aussagen ist korrekt?
Betrachten Sie die beiden Diagramm, A und B; sie zeigen die Verteilung des Preises von Diamanten in Abhängigkeit der Schliffart. Der vertikale Strich zeigt ein Maß der zentralen Tendenz. Welche der Aussagen ist korrekt?
Was ist der richtige R-Code, um das Diagramm zu erzeugen?
**R-Code A**
flights %>%
ggplot(aes(x = hour, y = dep_delay)) +
geom_boxplot(aes(group = hour)) +
geom_smooth() +
coord_cartesian(ylim = c(-10, 60)) +
scale_x_continuous(breaks = 1:24)
**R-Code B**
flights %>%
select(arr_delay, hour) %>%
ggplot(aes(x = hour, y = arr_delay)) +
geom_boxplot(aes(group = hour)) +
geom_smooth(method = 'lm') +
coord_cartesian(ylim = c(-10, 60))
**R-Code C**
flights %>%
select(dep_delay, hour) %>%
ggplot(aes(x = hour, y = dep_delay)) +
geom_boxplot(aes(group = hour)) +
geom_smooth(method = 'lm') +
coord_cartesian(ylim = c(-10, 60)) +
scale_x_continuous(breaks = 1:24)
**R-Code D**
flights %>%
select(dep_delay, hour) %>%
ggplot(aes(y = hour, x = dep_delay)) +
geom_boxplot(aes(group = dep_delay)) +
geom_smooth(method = 'lm') +
coord_cartesian(ylim = c(-10, 60)) +
scale_x_continuous(breaks = 1:24)
**R-Code E**
flights %>%
select(dep_delay, hour) %>%
ggplot(aes(x = hour, y = dep_delay)) +
geom_boxplot(aes(group = hour)) +
coord_cartesian(ylim = c(-10, 60)) +
scale_x_continuous(breaks = 1:24)
Was ist der richtige R-Code, um das Diagramm zu erzeugen?
**R-Code A**
tips %>%
ggplot(aes(x = total_bill, y = tip,
color = sex, shape = sex)) +
geom_point() +
scale_color_viridis_d() +
theme_bw()
**R-Code B**
tips %>%
ggplot(aes(x = total_bill, y = tip,
color = sex, shape = sex)) +
geom_point(size = 2) +
geom_smooth() +
scale_color_viridis_d() +
theme_bw()
**R-Code C**
tips %>%
ggplot(aes(y = total_bill, x = tip,
color = sex, shape = sex)) +
geom_point(size = 2) +
geom_smooth() +
scale_color_viridis_d() +
theme_bw()
**R-Code D**
tips %>%
ggplot(aes(x = total_bill, y = tip,
color = sex, shape = sex)) +
geom_point(size = 2) +
geom_smooth()
**R-Code E**
tips %>%
ggplot(aes(x = total_bill, y = tip,
color = sex)) +
geom_point(size = 1) +
geom_smooth() +
scale_color_viridis_d()
Je nach Datenanalyse sind verschiedene Arten von Diagramm sinnvoll. Ein Diagrammtyp namens Heatmap lässt sich in R z.B. so erstellen:
library(tidyverse)
data("diamonds")
p1 <-
ggplot(diamonds) +
aes(x = cut, y = clarity) +
geom_bin2d()
p1
Ändern wir noch das Farbschema, damit die Farbunterschiede deutlicher zutage treten, wir setzen sozusagen die Skibrille mit den gelben Gläsern auf.
p1 +
scale_fill_viridis_c()
Welche Aussage passt am besten zu diesem Diagramm?
Betrachten Sie das Histogramm. Welcher Boxplot spiegelt das Histogramm am genauesten wider?
Histogramm:
Boxplots:
## [[1]]
##
## [[2]]
##
## [[3]]
##
## [[4]]
##
## [[5]]
Wir analysieren die Verteilung des Preises (price
) von
Diamanten, gruppiert nach Schliffart (cut
). Betrachten Sie
die Histogramme. Welche Aussage ist korrekt?
cut
).
Wir analysieren die Verteilung des Preises (price
) von
Diamanten, gruppiert nach Schliffart (cut
). Betrachten Sie
die Histogramme. Welche Aussage ist korrekt?
Premium
ist bimodal verteilt.
Fair
ist bimodal verteilt.
Wählen Sie den am besten treffenden Wert des Korrelationskoeffizientens im Streudiagramm.
Welche Aussage zu dieser R-Syntax ist falsch:
ggplot(data = mpg) +
geom_point(mapping = aes(x = displ, y = hwy))
mpg
.
displ
stehen.
+
).
hwy
stehen.
Gesucht ist die Syntax, die folgendes Diagramm erstellt (Datensatz
mpg
):
A
data(mpg)
ggplot(data = mpg) +
geom_point(mapping = aes(y = hwy, x = cyl))
B
data(mpg)
ggplot(data = mpg) +
geom_point(mapping = aes(x = hwy, y = cyl))
C
data(mpg)
ggplot(data = data) +
geom_point(aes(x = hwy, y = cyl))
D
data(mpg)
geom_point(mapping = aes(x = hwy, y = cyl)
E
data(mpg)
ggplot(data = mpg) +
geom_point((x = hwy, y = cyl)
Gesucht ist die Syntax, die folgendes Diagramm erstellt (Datensatz
mpg
):
A
data(mpg)
ggplot(data = mpg) +
geom_point(mapping = aes(x = displ, y = hwy))
B
data(mpg)
ggplot(data = mpg) +
geom_point(mapping = aes(x = displ, y = hwy), color = class)
C
data(mpg)
ggplot(data = mpg) +
geom_point(mapping = aes(x = displ, y = hwy, color = class))
D
data(mpg) +
geom_point(mapping = aes(x = displ, y = hwy, color = class))
E
data(mpg)
ggplot(data = mpg) +
geom_point(mapping = aes(color = class), x = displ, y = hwy)
Gesucht ist die Syntax, die folgendes Diagramm erstellt (Datensatz
mpg
):
A
data(mpg)
ggplot(data = mpg)
+ geom_point(mapping = aes(x = displ, y = hwy))
+ facet_wrap(~ class, nrow = 2)
B
data(mpg)
ggplot(data = mpg) +
geom_point(x = displ, y = hwy) +
facet_wrap(~ class, nrow = 2)
C
data(mpg)
ggplot(data = mpg) +
geom_point(mapping(x = displ, y = hwy) +
facet_wrap(~ class, nrow = 2)
D
data(mpg) +
ggplot(data = mpg) +
geom_point(mapping = aes(x = displ; y = hwy)) +
facet_wrap(~ class, nrow = 2)
E
data(mpg)
ggplot(data = mpg) +
geom_point(mapping = aes(x = displ, y = hwy)) +
facet_wrap(~ class, nrow = 2)
Welche der folgenden Erweiterungen für ggplot2
gibt es
nicht?
Gesucht ist die Syntax, die folgendes Diagramm erstellt (Datensatz
diamonds
):
A
data(diamonds)
ggplot(data = diamonds) +
geom_bar(mapping = aes(x = cut, y = prop, group = 1))
B
data(diamonds)
ggplot(data = diamonds) +
geom_bar(mapping = aes(x = cut, y = prop))
C
data(diamonds)
ggplot(data = diamonds) +
geom_bar(mapping = aes(x = cut, y = stat(prop), group = 1))
D
data(mpg) +
ggplot(data = diamonds) +
geom_bar(mapping = aes(x = cut, y = stat(prop)), group = 1)
E
data(mpg)
ggplot(data = diamonds)
+ geom_bar(mapping == aes(x = cut, y = stat(prop), group = 1))
Welche Aussage zu stat_summary()
(bei
ggplot2
) ist korrekt?
Gesucht ist die Syntax, die folgendes Diagramm erstellt (Datensatz
diamonds
):
A
ggplot(data = diamonds) +
geom_bar(mapping = aes(x = cut, fill = clarity),)
B
ggplot(data = diamonds) +
geom_bar(mapping = aes(x = cut, fill = clarity), position = "fill")
C
ggplot(data = diamonds) +
geom_bar(mapping = aes(x = cut, fill = clarity), position = "dodge")
D
ggplot(data = diamonds) +
geom_bar(mapping = aes(x = cut, fill = clarity), position = "identity")
E
ggplot(data = diamonds) +
geom_bar(mapping = aes(x = cut, fill = clarity, position = "fill"))
Gesucht ist die Syntax, die folgendes Diagramm erstellt:
A
de <- map_data("world", region = "Germany")
ggplot(de, aes(long, lat, group = group)) +
geom_polygon(fill = "white", colour = "black")
B
de <- map_data("world")
ggplot(de, aes(long, lat, group = group)) +
geom_polygon(fill = "white", colour = "black")
C
de <- map_data("world")
ggplot(de, aes(long, lat, group = group)) +
geom_polygon(fill = "white", colour = "black") +
coord_quickmap()
D
de <- map_data("world", region = "Germany")
ggplot(de, aes(long, lat, group = group)) +
geom_polygon(fill = "white", colour = "black") +
coord_quickmap()
E
de <- map_data("world", region = "France")
ggplot(de, aes(long, lat, group = group)) +
geom_polygon(fill = "white", colour = "black") +
coord_quickmap()
ggplot2
besteht aus mehreren “Bausteinen” oder
“Schichten”, die zusammen kombiniert werden können, und so ein Diagramm
erstellen.
Welches der folgenden “Schichten” ist nicht Teil von
ggplot2
?