Übersicht Dataframes für diese Folien
d_wb_all |
Weltbank - Alle Länder, alle Jahre |
d_wb_2012 |
Wie d_wb_all , aber nur für das Jahr 2012 |
d_wb_countries |
Wie d_wb_all , aber nur ausgewählte Länder |
d_wb_countries_2012 |
Wie d_wb_countries , aber nur für das Jahr 2012 |
d_ns_bochum_tag |
Tageswerte für Niederschläge in Bochum |
d_ns_bochum_monat |
Monatswerte für Niederschläge in Bochum |
Quellen: https://data.worldbank.org und https://www.dwd.de
Werte plotten mit geom_col()
col wie column = Säule → Säulendiagramm
Beispieldatensatz
d <- tibble(
A=c("X", "Y", "X", "Z", "Z", "X"),
B=c(1.5, 5.0, 4.5, 2.0, 1.0, 2.0),
C=c("U", "V", "V", "W", "V", "W")
)
X |
1.5 |
U |
Y |
5.0 |
V |
X |
4.5 |
V |
Z |
2.0 |
W |
Z |
1.0 |
V |
X |
2.0 |
W |
- Mit
tibble
auf die Schnelle einen Dataframe erzeugen
- Werte für ein Merkmal mit
c(...)
kombinieren
- Zeichenketten in Hochkommata eingeben (ob
"so"
oder 'so'
ist egal)
- Mit
<-
wird der Dataframe der Variablen d
zugewiesen
Minimalbeispiel
ggplot(data=d) +
geom_col(mapping=aes(x=A, y=B))
- Höhe der Säule aus Summe der Werte von Merkmal B
Füllfarbe nach drittem Merkmal
ggplot(data=d) +
geom_col(mapping=aes(x=A, y=B, fill=C))
- Mit
fill=<M>
Merkmal für Füllfarbe angeben
Nebeneinander
ggplot(data=d) +
geom_col(mapping=aes(x=A, y=B, fill=C), position="dodge")
- Nebeneinander anordnen mit
position="dodge"
Als Balkendiagramm
ggplot(data=d) +
geom_col(mapping=aes(x=A, y=B, fill=C)) + coord_flip()
- Mit
coord_flip()
Koordinatenachsen vertauschen
Treibhausgasemissionen (2012)
ggplot(data=d_wb_countries_2012) +
geom_col(mapping=aes(x=country, y=gge))
- Zur Erinnerung:
gge
steht für Greenhouse Gas Emissions
Treibhausgasemissionen bunt (2012)
ggplot(data=d_wb_countries_2012) +
geom_col(mapping=aes(x=country, y=gge, fill=region))
- Nach Weltregion eingefärbt
Treibhausgasemissionen pro Kopf (2012)
ggplot(data=d_wb_countries_2012) +
geom_col(mapping=aes(x=country, y=gge / pop, fill=region))
- Rechnen mit Merkmalen:
y=gge / pop
Treibhausgasemissionen über die Zeit
ggplot(data=d_wb_countries) +
geom_col(mapping=aes(x=year, y=gge, fill=country))
Warning: Removed 128 rows containing missing values or values outside the scale range
(`geom_col()`).
Treibhausgasemissionen über die Zeit pro Kopf
ggplot(data=d_wb_countries) +
geom_col(mapping=aes(x=year, y=gge / pop, fill=country))
Warning: Removed 128 rows containing missing values or values outside the scale range
(`geom_col()`).
- Rechnen mit Merkmalen:
y=gge / pop
Treibhausgasemissionen anteilig
ggplot(data=d_wb_countries) +
geom_col(mapping=aes(x=year, y=gge, fill=country), position="fill")
Warning: Removed 128 rows containing missing values or values outside the scale range
(`geom_col()`).
- Selbe Höhe für alle Balken mit
position="fill"
\(\rightarrow\) Anteile ablesbar
Ring- und Kreisdiagramme…
1. Schritt: Eine Säule mit Füllfarbe
ggplot(data=d_wb_countries_2012) +
geom_col(mapping=aes(x=0, y=pop, fill=country))
- x-Wert fest, Höhe nach Merkmal B, Füllfarbe nach Merkmal A
2. Schritt: Bereich auf der x-Achse
ggplot(data=d_wb_countries_2012) + geom_col(mapping=aes(x=0, y=pop, fill=country)) +
scale_x_continuous(limits=c(-1.5, 0.5))
- Skalen besprechen wir noch ausführlicher
Kreisdiagramm
ggplot(data=d_wb_countries_2012) + geom_col(mapping=aes(x=0, y=pop, fill=country)) +
coord_polar(theta="y")
- Wie Ringdiagramm, aber kein Bereich für x-Werte vorgeben
Ohne Schnickschnack
ggplot(data=d_wb_countries_2012) + geom_col(mapping=aes(x=0, y=pop, fill=country)) +
coord_polar(theta="y") + theme_void()
- Themes behandeln wir noch ausführlich
2. Häufigkeitsverteilungen mit geom_bar()
Wie geom_col()
aber mit Zählung
- bar wie Balken → Balkendiagramm
Beispieldatensatz
d <- tibble(farbe=c("rot", "gruen", "blau", "gruen", "rot", "gruen"))
kable(d)
rot |
gruen |
blau |
gruen |
rot |
gruen |
Minimalbeispiel
ggplot(data=d) + geom_bar(mapping=aes(x=farbe))
- Wie funktioniert das? Mit einer statistischen Transformation!
Anzahl der Länder pro Region
ggplot(data=d_wb_2012) + geom_bar(mapping=aes(x=region))
- Funktioniert, weil jedes Land genau einmal in Dataframe
Anzahl der Länder pro Region
ggplot(data=d_wb_2012) + geom_bar(mapping=aes(x=region, fill=region))
- Balken nach Region eingefärbt (redundant mit Achsenbeschriftung)
3. Histogramme mit geom_histogram()
Beispieldatensatz
d <- tibble(X=c(0, 0.5, 0.6, 0.8, 1.3, 1.4, 1.5, 1.6, 1.9, 2.5, 2.6, 2.7))
ggplot(data=d) + geom_point(mapping=aes(x=X), y=0, color='red')
Histogramm
ggplot(data=d) +
geom_histogram(mapping=aes(x=X)) +
geom_point(mapping=aes(x=X), y=0, color='red')
`stat_bin()` using `bins = 30`. Pick better value `binwidth`.
- Hinweis vom Programm: Voreinstellung nicht gut
Hilfetext zu geom_histogram
Klassenbreite mit binwidth=0.5
ggplot(data=d) +
geom_histogram(mapping=aes(x=X), binwidth=0.5) +
geom_point(mapping=aes(x=X), y=0, color='red')
Position mit boundary=0
ggplot(data=d) +
geom_histogram(mapping=aes(x=X), binwidth=0.5, boundary=0) +
geom_point(mapping=aes(x=X), y=0, color='red')
- Voreinstellung: Intervalle sind linksoffen (erstes Intervall geschlossen)
Rechtsoffene Intervalle mit closed="left"
ggplot(data=d) +
geom_histogram(mapping=aes(x=X), binwidth=0.5, boundary=0, closed="left") +
geom_point(mapping=aes(x=X), y=0, color='red')
Relative Häufigkeiten mit y=after_stat(density)
ggplot(data=d) +
geom_histogram(mapping=aes(x=X, y=after_stat(density)), binwidth=0.5, boundary=0, closed="left") +
geom_point(mapping=aes(x=X), y=0, color='red')
Unterschiedliche Klassengrößen mit breaks=c(...)
ggplot(data=d) +
geom_histogram(mapping=aes(x=X,y=stat(density)), breaks=c(0, 1, 1.5, 1.75, 4)) +
geom_point(mapping=aes(x=X), y=0, color='red')
Warning: `stat(density)` was deprecated in ggplot2 3.4.0.
ℹ Please use `after_stat(density)` instead.
Niederschläge (Tag) in Bochum
ggplot(data=d_ns_bochum_tag) +
geom_histogram(mapping=aes(x=Niederschlag), binwidth=0.5, boundary=0)
Niederschläge (Monat) in Bochum
ggplot(data=d_ns_bochum_monat) +
geom_histogram(mapping=aes(x=Niederschlag), binwidth=15, boundary=0)
- Klassenbreite mit
binwidth=w
, Klassengrenze mit boundary=b
- hier zu sehen: eine unimodale, linkssteile Verteilung
Niederschläge (Monat) in Bochum
ggplot(data=d_ns_bochum_monat) +
geom_histogram(mapping=aes(x=Niederschlag, y=stat(density)), binwidth=15, boundary=0)
- Relative Häufigkeiten mit
y=stat(density)
Niederschläge (Monat) in Bochum
ggplot(data=d_ns_bochum_monat) +
geom_histogram(mapping=aes(x=Niederschlag, fill=Monat), binwidth=15, boundary=0)
5. Zusammenfassung
Werte darstellen mit geom_col()
ggplot(data=d) +
geom_col(mapping=aes(x=<M>, y=<M>, fill=<M>, color=<M>), Parameter)
x |
Merkmal für x-Position |
Nein |
y |
Merkmal für Höhe der Balken |
Nein |
fill |
Merkmal für Füllfarbe |
Ja |
color |
Merkmal für Linienfarbe |
Ja |
position |
Gesamte y-Achse mit position="fill" |
|
Balken nebeneinander mit position="dodge" |
Zählen und darstellen mit geom_bar()
ggplot(data=d) +
geom_bar(mapping=aes(x=<M>, fill=<M>, color=<M>), Parameter)
x |
Merkmal für x-Achse (wird gezählt) |
Nein |
fill |
Füllfarbe |
Ja |
color |
Linienfarbe |
Ja |
position |
Gesamte y-Achse mit position="fill" |
|
Balken nebeneinander mit position="dodge" |
\(\rightarrow\) Wie geom_col
aber ohne y
Histogramme mit geom_histogram()
ggplot(data=d) +
geom_histogram(mapping=aes(x=<M>,y=stat(density),fill=<M>), Parameter)
x |
Merkmal, das gezählt werden soll |
Nein |
y |
Relative Häufigkeiten mit y=stat(density)) |
Ja |
fill |
Merkmal für Füllfarbe |
Ja |
bins |
Anzahl der Klassen |
binwidth |
Klassenbreite |
center |
Mitte einer Klasse |
boundary |
Grenze zwischen zwei Klassen |
breaks |
Klassengrenzen |
closed |
Intervalle geschlossen (“left” oder “right”) |
Empirische Verteilungsfunktion mit geom_step()
ggplot(data=d) +
geom_step(mapping=aes(x=<M>, color=<M>), stat="ecdf")
x |
Merkmal für empirische Verteilungsfunktion |
Nein |
color |
Merkmal für Farbe |
Ja |