Direkt zum Inhalt
Urkunden
Datenmanagement in RDateneingabe in RGraphen in RR DokumentationR SchnittstelleStatistik in R

Grafiken mit ggplot2

Das ggplot2</a > Paket, das von Hadley Wickham entwickelt wurde, bietet eine leistungsstarke Grafiksprache zur Erstellung eleganter und komplexer Diagramme. Seine Popularität in der R-Community ist in den letzten Jahren explodiert. Ursprünglich basiert ggplot2 auf Leland Wilkinsons The Grammar of Graphics</a > und ermöglicht es dir, Diagramme zu erstellen, die sowohl univariate als auch multivariate numerische und kategoriale Daten auf unkomplizierte Weise darstellen. Die Gruppierung kann durch Farbe, Symbol, Größe und Transparenz dargestellt werden. Die Erstellung von Spalierparzellen (d. h. die Konditionierung) ist relativ einfach.

Die Beherrschung der ggplot2-Sprache kann eine Herausforderung sein (hilfreiche Ressourcen findest du weiter unten im Abschnitt " Weiter" ). Es gibt eine Hilfsfunktion namens qplot() (für quick plot), die einen Großteil dieser Komplexität bei der Erstellung von Standarddiagrammen ausblenden kann.

qplot()

Mit der Funktion qplot() kannst du die gängigsten Diagrammtypen erstellen. Auch wenn ggplot damit nicht seine volle Leistungsfähigkeit entfaltet, kann es eine Vielzahl nützlicher Diagramme erstellen. Das Format ist:

qplot(x, y, data=, color=, shape=, size=, alpha=, geom=, method=, 
  formula=, facets=, xlim=, ylim= xlab=, ylab=, main=, sub=)

wo die Optionen sind:

   
option Beschreibung
alpha Alpha-Transparenz für überlappende Elemente, ausgedrückt als Bruchteil zwischen 0 (vollständige Transparenz) und 1 (vollständige Deckkraft)
Farbe, Form, Größe, Füllung Verknüpft die Ebenen der Variablen mit der Farbe, Form oder Größe des Symbols. Bei Liniendiagrammen assoziiert die Farbe die Stufen einer Variable mit der Linienfarbe. Bei Dichte- und Boxplots assoziierst du die Füllfarben mit einer Variablen. Legenden werden automatisch gezeichnet.
Daten Gibt einen Datenrahmen an
Facetten Erzeugt einen Trellis-Graphen, indem er konditionierende Variablen angibt. Sein Wert wird als rowvar ~ colvar ausgedrückt. Um Gitternetzdiagramme zu erstellen, die auf einer einzigen konditionierenden Variable basieren, verwendest du rowvar</em>. oder .colvar)
geom Gibt die geometrischen Objekte an, die den Diagrammtyp definieren. Die Option geom wird als Zeichenvektor mit einem oder mehreren Einträgen ausgedrückt. Zu den geom-Werten gehören "point", "smooth", "boxplot", "line", "histogram", "density", "bar" und "jitter".
Haupt, Unter Zeichenvektoren, die den Titel und den Untertitel angeben
Methode, Formel Wenn geom="smooth" ist, werden standardmäßig eine Löß-Fit-Linie und Konfidenzgrenzen hinzugefügt. Wenn die Anzahl der Beobachtungen größer als 1.000 ist, wird ein effizienterer Glättungsalgorithmus verwendet. Zu den Methoden gehören "lm" für Regression, "gam" für generalisierte additive Modelle und "rlm" für robuste Regression. Der Formelparameter gibt die Form der Anpassung an. Um zum Beispiel einfache lineare Regressionslinien hinzuzufügen, gibst du geom="smooth", method="lm", formula=yx an. Eine Änderung der Formel in y</del >poly(x,2) würde eine quadratische Anpassung ergeben. Beachte, dass die Formel die Buchstaben x und y verwendet und nicht die Namen der Variablen. Bei method="gam" musst du das mgcv-Paket laden. Für method="rml" lädst du das MASS-Paket.
x, y Legt die Variablen fest, die auf der horizontalen und vertikalen Achse platziert werden. Bei univariaten Diagrammen (z. B. Histogrammen) lässt du y weg.
xlab, ylab Zeichenvektoren, die horizontale und vertikale Achsenbeschriftungen angeben
xlim,ylim Numerische Vektoren mit zwei Elementen, die die Mindest- und Höchstwerte für die horizontale bzw. vertikale Achse angeben

Anmerkungen:

  • Zurzeit kann ggplot2 nicht verwendet werden, um 3D-Diagramme oder Mosaikdiagramme zu erstellen.
  • Verwende I(Wert), um einen bestimmten Wert anzugeben. Mit size=z wird zum Beispiel die Größe der gezeichneten Punkte oder Linien proportional zu den Werten einer Variablen z festgelegt. Im Gegensatz dazu setzt size=I(3) jeden Punkt oder jede Linie auf das Dreifache der Standardgröße.

Hier sind einige Beispiele mit Fahrzeugdaten (Kilometerstand, Gewicht, Anzahl der Gänge, Anzahl der Zylinder usw.) aus dem mtcars-Datenrahmen.

# ggplot2 examples
library(ggplot2)

# create factors with value labels
mtcars$gear <- factor(mtcars$gear,levels=c(3,4,5),
   labels=c("3gears","4gears","5gears"))
mtcars$am <- factor(mtcars$am,levels=c(0,1),
   labels=c("Automatic","Manual"))
mtcars$cyl <- factor(mtcars$cyl,levels=c(4,6,8),
   labels=c("4cyl","6cyl","8cyl"))
# Kernel density plots for mpg
# grouped by number of gears (indicated by color)
qplot(mpg, data=mtcars, geom="density", fill=gear, alpha=I(.5),
   main="Distribution of Gas Milage", xlab="Miles Per Gallon",
   ylab="Density")
# Scatterplot of mpg vs. hp for each combination of gears and cylinders
# in each facet, transmittion type is represented by shape and color
qplot(hp, mpg, data=mtcars, shape=am, color=am,
   facets=gear~cyl, size=I(3),
   xlab="Horsepower", ylab="Miles per Gallon")

# Separate regressions of mpg on weight for each number of cylinders
qplot(wt, mpg, data=mtcars, geom=c("point", "smooth"),
   method="lm", formula=y~x, color=cyl,
   main="Regression of MPG on Weight",
   xlab="Weight", ylab="Miles per Gallon")
# Boxplots of mpg by number of gears
# observations (points) are overlayed and jittered
qplot(gear, mpg, data=mtcars, geom=c("boxplot", "jitter"),
   fill=gear, main="Mileage by Gear Number",
   xlab="", ylab="Miles per Gallon")

Dichte1 Dichte 2 Dichte 3 Boxplot

Anpassen von ggplot2-Grafiken

Im Gegensatz zu den Basisgraphen von R werden die Graphen von ggplot2 von vielen der Optionen, die in der Funktion par( ) gesetzt werden, nicht beeinflusst. Sie können mit der Funktion theme() und durch Hinzufügen von Grafikparametern in der Funktion qplot() geändert werden. Für mehr Kontrolle kannst du ggplot() und andere Funktionen des Pakets verwenden. Beachte, dass ggplot2-Funktionen mit "+"-Zeichen verkettet werden können, um den endgültigen Plot zu erzeugen.

library(ggplot2)

p <- qplot(hp, mpg, data=mtcars, shape=am, color=am,
   facets=gear~cyl, main="Scatterplots of MPG vs. Horsepower",
   xlab="Horsepower", ylab="Miles per Gallon")

# White background and black grid lines
p + theme_bw()

# Large brown bold italics labels
# and legend placed at top of plot
p + theme(axis.title=element_text(face="bold.italic",
   size="12", color="brown"), legend.position="top")

benutzerdefinierte Spaliergrafik

Weiter gehen

Wir haben hier nur an der Oberfläche gekratzt. Weitere Informationen findest du in diesem praktischen ggplot-Spickzettel</a> und in Winston Changs hervorragendem Cookbook for R. ggplot2 ist zwar nicht mehr ganz aktuell, aber es gibt noch mehr: Elegant Graphics for Data Anaysis</a > ist immer noch das maßgebliche Buch zu diesem Thema.

Zum Üben

Teste das kostenlose erste Kapitel dieses interaktiven Tutorials zu ggplot2.</a >

R Grundlagen lernen

Beherrsche die Grundlagen der Datenanalyse in R, einschließlich Vektoren, Listen und Datenrahmen, und übe R mit echten Datensätzen.
Beginne R kostenlos zu lernen