Gitterdiagramme in R
Es unterstützt verschiedene Arten von Diagrammen wie z. B. Streudiagramme, Liniendiagramme, Balkendiagramme und Histogramme.
Das typische Format ist
graph_type(formula, data=)
Die Formel gibt die anzuzeigende(n) Variable(n) und alle konditionierenden Variablen an. Zum Beispiel bedeutet ~x|A, dass die numerische Variable x für jede Stufe des Faktors A angezeigt wird. y~x | A*B bedeutet, dass die Beziehung zwischen den numerischen Variablen y und x separat für jede Kombination der Stufen von Faktor A und B angezeigt wird. ~x bedeutet, dass die numerische Variable x allein angezeigt wird.
graph_type | Beschreibung | Formelbeispiele |
barchart | Balkendiagramm | xA |
bwplot | Boxplot | xA |
cloud | 3D-Streudiagramm | z~x*y |
contourplot | 3D-Konturplot | z~x*y |
densityplot | Kerndichtediagramm | ~x |
dotplot | dotplot | ~x |
histogram | histogram | ~x |
levelplot | 3D Level Plot | z~y*x |
parallel | Parallelkoordinaten-Plot | Datenrahmen |
splom | Streudiagramm-Matrix | Datenrahmen |
stripplot | Streifenparzellen | |
xyplot | Scatterplot | y~x |
Drahtgitter | 3D-Drahtgittergrafik | z~y*x |
Hier sind einige Beispiele. Sie verwenden die Fahrzeugdaten (Kilometerstand, Gewicht, Anzahl der Gänge, Anzahl der Zylinder usw.) aus dem mtcars-Datenrahmen.
# Lattice Examples
library(lattice)
attach(mtcars)
# create factors with value labels
gear.f<-factor(gear,levels=c(3,4,5),
labels=c("3gears","4gears","5gears"))
cyl.f <-factor(cyl,levels=c(4,6,8),
labels=c("4cyl","6cyl","8cyl"))
# kernel density plot
densityplot(~mpg,
main="Density Plot",
xlab="Miles per Gallon")
# kernel density plots by factor level
densityplot(~mpg|cyl.f,
main="Density Plot by Number of Cylinders",
xlab="Miles per Gallon")
# kernel density plots by factor level (alternate layout)
densityplot(~mpg|cyl.f,
main="Density Plot by Numer of Cylinders",
xlab="Miles per Gallon",
layout=c(1,3))
# boxplots for each combination of two factors
bwplot(cyl.f~mpg|gear.f,
ylab="Cylinders", xlab="Miles per Gallon",
main="Mileage by Cylinders and Gears",
layout=(c(1,3))
# scatterplots for each combination of two factors
xyplot(mpg~wt|cyl.f*gear.f,
main="Scatterplots by Cylinders and Gears",
ylab="Miles per Gallon", xlab="Car Weight")
# 3d scatterplot by factor level
cloud(mpg~wt*qsec|cyl.f,
main="3D Scatterplot by Cylinders")
# dotplot for each combination of two factors
dotplot(cyl.f~mpg|gear.f,
main="Dotplot Plot by Number of Gears and Cylinders",
xlab="Miles Per Gallon")
# scatterplot matrix
splom(mtcars[c(1,3,4,5,6)],
main="MTCARS Data")
Beachte, dass die Angabe einer Konditionierungsvariable, wie in Grafik 1, optional ist. Der Unterschied zwischen den Diagrammen 2 und 3 ist die Verwendung der Layout-Option, um die Platzierung der Felder zu steuern.
Gitterdiagramme anpassen
Im Gegensatz zu R-Basisgraphen werden Gittergraphen von vielen der in der par( ) -Funktion eingestellten Optionen nicht beeinflusst. Die Optionen, die du ändern kannst, findest du unter help(xyplot). Häufig ist es am einfachsten, diese Optionen innerhalb der oben beschriebenen übergeordneten Plotfunktionen einzustellen. Außerdem kannst du Funktionen schreiben, die das Rendering der Panels verändern. Hier ist ein Beispiel.
# Customized Lattice Example
library(lattice)
panel.smoother <- function(x, y) {
panel.xyplot(x, y) # show points
panel.loess(x, y) # show smoothed line
}
attach(mtcars)
hp <- cut(hp,3) # divide horse power into three bands
xyplot(mpg~wt|hp, scales=list(cex=.8, col="red"),
panel=panel.smoother,
xlab="Weight", ylab="Miles per Gallon",
main="MGP vs Weight by Horse Power")
Weiter gehen
Gittergrafiken sind ein umfassendes grafisches System für sich. Das Buch von Deepanyan Sarkar Lattice: Multivariate Datenvisualisierung mit R</a > ist die maßgebliche Referenz. Weitere Informationen findest du im Trellis User's Guide</a >. Dr. Ihaka hat einen wunderbaren Foliensatz</a > zu diesem Thema erstellt. Eine exzellente frühe Betrachtung von Spalierdiagrammen findet sich in W.S. Clevelands klassisches Buch Visualizing Data</a > .
Zum Üben
Probiere diesen Kurs über multivariate Wahrscheinlichkeitsverteilungen in R</a > .