In diesem Kapitel wird grundlegendes Wissen zur Visualisierung von Daten vermittelt. Grundsätzlich gilt, dass Grafiken in R programmiert werden. Für Anfänger geht dieser Umstand sicherlich mit signifikantem Einarbeitungsaufwand einher. Die nötige Geduld zahlt sich jedoch aus, weil mit R der Visualisierung von Daten fast keine bzw. nur die Grenzen des Anwenders gesetzt sind. So können mit R individualisierte und äußerst hochwertige Grafiken erstellt werden.
Mittlerweile gibt es auch innovative Zusatzpakete für Visualisierungen, die sonst erforderliche Programmierungen von Grafiken ersetzen bzw. vereinfachen, bspw.:
Eine Übersicht zu weiteren Paketen findet sich in Kapitel 1.3. "Nützliche Zusatzpakete".
Wichtige Funktionen wie plot() legen die Grundstruktur von Grafiken fest. Die erzeugten Grafiken werden an das aktive Grafik-Fenster geschickt und dort angezeigt [in R-Studio im Fenster "plots" i. d. R. unten rechts]. Diese erzeugten Grafiken sind zwar vollständig, aber ergänzungsbedürftig.
Auch in diesem Kapitel wird auf den Datensatz "mtcars" zurückgegriffen [vgl. Kapitel 5 für eine Beschreibung des Datensatzes]. Einfaches Beispiel: Reichweite und PS
plot(mtcars$mpg, mtcars$PS)
Mit der Funktion plot() können die Daten auf verschiedene Art "geplottet" [= erzeugt] werden.
Im Folgendem finden sich vier grundlegende Beispiele, hier zunächst der R-Befehl:
par(mfrow = c(2,2))
plot(mtcars$mpg, main = "plot(mtcars$mpg)")
plot(mtcars$mpg, mtcars$PS, main = "plot(mtcars$mpg, mtcars$PS)")
plot(factor(mtcars$am), main = "plot(factor(mtcars$am))")
plot(factor(mtcars$am), mtcars$PS, main = "plot(factor(mtcars$am), mtcars$PS)")
Hinweise zum Befehl:
Mittels par-Befehl werden die vier Grafiken zunächst matrixartig in einer Grafik mit zwei Zeilen [horizontal] und zwei Spalten [vertikal] zusammengefasst. Dieser Befehl kann auch weggelassen werden, um die Grafiken einzeln zu erzeugen.
Mit factor() wird in der dritten Grafik [unten links] eine kategoriale Variable erzeugt und ein Balkendiagramm mit den absoluten Häufigkeiten ausgegeben.
Die vierte Grafik [unten rechts] zeigt zwei Boxplots, d. h. die Verteilung der PS-Werte getrennt für Autos mit und ohne Automatik. Ein Boxplot ermöglicht gewisse Kennwerte einer Verteilung direkt aus einer Grafik abzulesen, bspw. Median [Strich innerhalb der Box], Ausreißer [im Beispiel zwei Punkte oberhalb], Spannweite [Länge des gesamten Box-Plots inklusive Ausreißer] oder Quartile [bspw. unteres Quartil ist Beginn der Box].
Neben der wichtigen Funktion plot() existiert eine Vielzahl weiterer [elementarer] Grafikfunktionen.
Zum Beispiel:
barplot() → Balkendiagramm
pie() → Kreisdiagramm
boxplot() → Boxplot
hist() → Histogramm
qqnorm() → Quantile-Quantile-Plot zur Prüfung auf Normalverteilung
Für alle [elementaren] Grafikfunktionen gibt es sog. Optionen, mit denen die Grafiken verbessert werden können. Für die Funktion plot() sind u. a. folgende Optionen [high level] festlegbar:
main = "..." → Titel
sub = "..." → Untertitel
xlab = "..." → x-Achsenbeschriftung
ylab = "..." → y-Achsenbeschriftung
xlim = c(a, b) → Wertebereich der x-Achse [von a bis b]
ylim = c(a, b) → Wertebereich der y-Achse; c(b, a) um die Achse umzudrehen
axes = TRUE/FALSE → Achsen anzeigen oder nicht
ann = TRUE/FALSE → unterdrückt alle Beschriftungen
frame.plot = TRUE/FALSE → Rahmen anzeigen oder nicht
type = "..." → l = Linien, p = Punkte, usw.
Die wichtigsten Typen [Option "type"] sind in der folgenden Grafik zusammengefasst, hier zunächst der Befehl:
par(mfrow = c(2,4))
plot(mtcars$mpg, type = "l", main = "type = \"l\"")
plot(mtcars$mpg, type = "p", main = "type = \"p\"")
plot(mtcars$mpg, type = "b", main = "type = \"b\"")
plot(mtcars$mpg, type = "o", main = "type = \"o\"")
plot(mtcars$mpg, type = "h", main = "type = \"h\"")
plot(mtcars$mpg, type = "c", main = "type = \"c\"")
plot(mtcars$mpg, type = "s", main = "type = \"s\"")
plot(mtcars$mpg, type = "S", main = "type = \"S\"")
Zum besseren Einarbeiten in "die Welt der Optionen und Parameter" ist die R-Dokumentation [R-Hilfe] empfehlenswert, da dort die o. g. Optionen und weitere Parameter erläutert werden. Beispiel: Hilfe zur Funktion plot()
help(plot)
Im o. g. Beispiel "Reichweite und PS" bietet es sich bspw. an, dass eine Überschrift [main] und Achsenbeschriftungen [xlab, ylab] eingefügt werden. Hier der entsprechend ergänzte Befehl:
plot(mtcars$mpg, mtcars$PS,
main = "Meilen pro US-Gallone vs. PS",
xlab = "Meilen pro US-Gallone",
ylab = "PS")
Neben den erläuterten Optionen [high level] gibt es eine große Vielzahl an Parametern [low level] mit denen Grafiken und deren Ausgabe weiter verbessert werden können. Für einen ersten Überblick eignet sich auch die R-Hilfe, die hier aus Platzgründen nicht als Screenshot dargestellt wird.
help(par)
Vorab lässt sich sagen, dass Parameter folgende Grafikelemente betreffen:
Linien und Punkte
Definition von Schrift und Zeichen
Achsen
Grafik-Aufteilung
Häufig verwendete Grafikparameter sind bspw.:
pch → Punkt-Zeichen
lty → Linientyp
lwd → Linienstärke
cex → Textgröße
col → Farbe von Grafikelementen
mfrow bzw. mfcol → multiple Grafiken [= mehrere Grafiken in einer Grafik vereint]
Anbei findet sich das Beispiel "Reichweite und PS" unter Verwendung der Parameter col und pch.
Hier der [nochmals] ergänzte Befehl:
plot(mtcars$mpg, mtcars$PS,
main = "Meilen pro US-Gallone vs. PS",
xlab = "Meilen pro US-Gallone",
ylab = "PS",
col = "blue",
pch = 15)
text(15, 335, "Maserati Bora", adj = c(-0.1, 0.5))
Hinweise zum Befehl:
Mittels col = "blue" und pch = 15 werden aus den schwarzen Kreisen nun blaue Vierecke.
Mittels der Funktion text() wird der Datenpunkt [15, 335] beschriftet und der Beschriftungstext "Maserati Bora" mittels adj etwas nach rechts vom blauen Viereck [= Datenpunkt] gesetzt. Die Funktion text() wird bei vielen Grafiken standardmäßig genutzt [und fällt aus dem hier vorgestellten high- und low-level-Schema etwas heraus, weil sie keine primäre Grafikfunktion ist].