ein Portrait von mir

Dipl.Math. Dr. Haiko Lüpsen
Statistik & Kurse

Zusammenfassung S, S-Plus und R: Grafik

Ausgabe/Devices
par - allgemeine Plot-Parameter (low-level)
Plot-Parameter (high-level)
Farben
High-level Plot-Funktionen
   Funktionen von plot( )
   Elementare Plot-Funktionen
   Fortgeschrittene Plot-Funktionen
   Trellis-Grafiken
   Grafiken der Zeitreihenanalyse
Modifizierung von Grafiken (low-level Plots)


Ausgabe/Devices

Starten der Grafik-Ausgabe (nur noch bei SPlus/Unix erforderlich)
motif()

zusätzliche Grafik-Fenster:
windows() (nur R/Windows)
X11() (nur R/Unix)
graphsheet (nur Splus/Windows)
motif() (nur Splus/Unix)

Drucken
R/Windows: rechte Maustaste im Grafikfenster
R/Unix: über ps/pdf-Ausgabe
Splus/Windows: File-Menü
Splus/Unix: Grafikfenster-Menü

Export (R):
pdf("Pfad", onefile=F/T) (mehrere Grafiken möglich)
postscript("Pfad", onefile=F/T) (mehrere Grafiken möglich)
jpeg("Pfad")
bmp("Pfad")
png("Pfad")
dev.off() (Beenden der Ausgabe)

Export (S-Plus):
Splus/Windows: File-Menü -> Export Graph
pdf.graph("Pfad", onefile=F/T) (mehrere Grafiken möglich)
postscript("Pfad", onefile=F/T) (mehrere Grafiken möglich)
dev.off() (Beenden der Ausgabe)

par - allgemeine Plot-Parameter (low-level)

(eine Auswahl, eine volle Liste ist erhältlich über help(par))

Grafik-Aufteilung  
mfrow = c(nrows, ncols)
mfcol = c(nrwos, ncols)
Aufteilung der Ausgabefläche in nrows Zeilen und ncols Spalten für max. nrows*ncols Grafiken
mfg = c(Zeile, Spalte) Position für den nächsten Plot, falls mfrow oder mfcol gesetzt wurde,
(z.B. zum Neuzeichnen einer Plotposition)
pin = c(Breite, Höhe) Größe des Plots in inches
plt = c(x1, x2, y1, y2) zulässiger Plot-Bereich als Anteil des normalen Plot-Bereichs
mar = c(unten, links, oben, rechts)
mai = c(unten, links, oben, rechts)
Margin: freier Rand zwischen Rand und Grafik: in "Anzahl Text-Zeilen" (mar) bzw. inches (mai)
oma = c(unten, links, oben, rechts)
omi = c(unten, links, oben, rechts)
nur bei Aufteilung der Ausgabefläche in Zeilen und Spalten:
Margin: freier Rand zwischen Rand und Grafikbereich: in "Anzahl Text-Zeilen" (oma) bzw. inches (omi)
fig = c(x1, x2, y1, y2, new=T) Definition eines Teilbereichs der Ausgabefläche für die nächste Grafik (0 <= x1,x2,x3,x4 <= 1)
bg = ... Hintergrundfarbe
fg = ... Vordergrundfarbe
bty = ... Form des Rahmens (Box) der Grafik,
u.a. "n" für keinen Rahmen
Linien und Punkte  
pch = "..."
pch = n
Plotsymbol für Punkte: Zeichen
oder Code n=0,...,25 für spezielle Plotsymbole, siehe r-charts.com/
lty = n
ltx = n
lt = n
Linientyp-Code: 1=solid, 2=dashed (gestrichelt), 3=dotted (gepunktet), 4=dotdash, 5= longdash, 6=twodash
siehe r-charts.com/
lwd = n Linienstärke-Code: 1=normal, 2=fett,.., siehe r-charts.com/
col = ...
col.axis = ...
col.lab = ...
col.main = ...
col.sub = ...
Farbe für Beschriftung
Schrift- und Zeichendefinitionen  
font = n
font.axis = n
font.main = n
font.sub = n
font.lab = n
Font-Code: 1=normal, 2=fett, 3=kursiv, 4=fett+kursiv, 5=Symbol
family = ... Name der Fontfamilie (z.B. courier, symbol, serif)
cex = a
cex.axis = a
cex.lab = a
cex.main = a
cex.sub = a
Vergrößerungsfaktor (>1) bzw. Verkleinerungsfaktor (<1) für Text, bzw.
Tickmark-Labels
Achsenbeschriftungen
Titel
Untertitel
adj = a Ausrichtung von Text:
0=links, 0.5=zentriert, 1=rechts
ann = T/F Ausgabe von Titel und Achsenbeschriftungen
crt = a Winkel für Rotation einzelner (character-) Zeichen
srt = a Winkel für Rotation eines Textes
Achsen  
xaxt = ...
yaxt = ...
Typ der Achse,
z.B. "n" für Unterdrückung der Achse, "s" für normal
xlog = F/T
ylog = F/T
Wahl einer logarithmischen Achse
axis(a,at=..,labels=...) Zeichnen einer Achse: 1=unten, 2=links, 3=oben, 4=rechts, mit Tickmarks (at)
box() Zeichnen eines Rahmens
xaxp = c(x1, x2, nx)
yaxp = c(y1, n2, ny)
Min und Max für Tickmarks und Anzahl der Intervalle
xaxs = ...
yaxs = ...
Art der Intervallberechnung für die Tickmarks: "r" (regular), "i" (internal)
lab = c(nx, ny, len) Anzahl der Tickmarks (Labels) auf den Achsen (nx, ny) bzw.
Anzahl Zeichen für Beschriftung der Tickmarks
las = ... Ausrichtung der Tickmark (Label)-Beschriftung:
0=parallel zur Achse, 1=horizontal,
2=senkrecht zur Achse, 3=vertikal
tck = ...
tcl = ...
Steuerung der Länge der Tickmarks: >0 nach innen, <0 nach außen
mfp = c(tit, lab, line) Abstände für Achsentitel (tit), -labels (lab) und -linie (line)
mgp = c(lab, tick, symb) Abstände von der Achse für Label/Titel (lab), Tick mark label (tick) und Tick mark symbol (symb)
Diverses  
ask = T/F Warten auf Benutzereingabe vor Ausgabe der Grafik
xpd = T/NA T: Plotergänzungen (wie Text) können nur innerhalb des Plotrahmens eingefügt werden
NA: keine Einschränkungen
par("usr") Ausgabe von x1,x2,y1,y2: Koordinaten des verfügbaren Plotbereichs

Plot-Parameter (high-level)

(gültig für alle Funktionen, die Grafiken erstellen,
eine Auswahl)

add = T/F Überlagern der Grafik mit vorheriger Grafik
(nur bei wenigen Funktionen anwendbar)
type = "c" Art der Plotasusgabe:
l=Linien, p=Punkte, b=Linien+Punkte, n=keine (nur Achsen), o=Überlagerung, h=vertikale Verbindungen zur x-Achse
axes = T/F Ausgabe der Achsen unterdrücken
xlab = "..."
ylab = "..."
Achsenbeschriftungen
log = "x" , "y" , "xy" logarithmische Skala für x-, y- bzw. x- und y-Achse
xlim = c(Anfangswert, Endwert)
ylim = c(Anfangswert, Endwert)
Beschränkung des Wertebereichs für die Achsen
main = "...."
sub = "...."
Titel (über der Grafik) bzw. Untertitel (unter der x-Achsenbeschriftung)

Farben

Die Farben können über den Parameter col=... spezifiziert werden:

S-Plus: Werte 0-15 für 16 verschiedene Farben (kann Geräte-abhängig sein).

R: 1=schwarz, 2=rot, 3=grün, 4=blau, 5=türkis, 6=magenta, 7=gelb, 8=grau
oder wie in HTML: "#RRGGBB" mit R/G/B-Anteil in hexadezimaler Schreibweise (0,1,...,E,F)
"Name" , z.B. "green", "lightred", "darkblue", "yellow", "grey"

gray.colors(n,start=...,end=...) Codes für n Graustufen zwischen 0<=anf < end<1

High-level Plot-Funktionen

- Funktionen von plot( )

(eine Auswahl)

plot(x-Vektor, y-Vektor) x-y-Punktewolke
plot(y-Vektor) Zeitreihenverlauf (x=Index)
plot(x-Faktor) Barcharts
plot(x-Faktor, y-Vektor) gruppierte Boxplots
plot(DataFrame) Matrix von Punktewolken (wie pairs( ) )
plot(~ x1 + x2 + ...) Matrix von Punktewolken der Variablen x1, x2,...
plot(y ~ x1 + x2 + ...) Matrix von Punktewolken von y mit Variablen x1, x2,..
plot(agnes(DataFrame)) Dendrogramm (nur SPlus)
plot(lm(...)) diagnostische Plots zu linearen Modellen
plot(density(x-Vektor)) Dichtefunktion
   

- Elementare Plot-Funktionen

barplot(table(x-Vektor))
barplot(table(x-Vektor, y-Vektor))
1-dim. Barcharts (Balkendiagramm)
2-dim. Barcharts (Balkendiagramm)
pie(table(x-Vektor)) Piecharts (Kreisdiagramm)
boxplot(x-Vektor)
boxplot(x1-Vektor, x2-Vektor,...)
boxplot(x1-Vektor ~ x2-Faktor,...)
Boxplot
multiple Boxplots
Boxplots für Gruppen
hist(x-Vektor)
hist(x-Faktor)
Histogramm
1-dim. Barcharts (Balkendiagramm)
qqnorm(x-Vektor)
qqline(x-Vekktor)
qqplot(x-Vektor, y-Vektor)
Quantile-Quantile-Plot zur Prüfung auf Normalverteilung
Diagonale zum QQ-Plot
Quantile-Quantile-Plot zum Vergleich von Variablen
pairs(DataFrame) Matrix von Punktewolken
brush(DataFrame) Matrix von Punktewolken mit Spin und interaktiven Funktionen
symbols(x-Vektor, y-Vektor,
circles = z-Vektor
squares = z-Vektor
stars = z-Vektor
boxplots = z-Vektor )
x-y-Punktewolke, bei der die Punkte eines der ausgewählten Symbole sind, deren Größe entsprechend der z-Varibalen gewählt wird.
coplot( y-Vektor ~ x-Vektor | z-Vektor) Conditioning Plot: x-y-Plot für Bereiche einer Variablen z,
entweder für die Werte von z (wenn z factor) oder es werden für z überlappende Intervalle gebildet
cdplot( y-Faktor ~ x-Vektor )
spineplot( y-Faktor ~ x-Vektor )
Conditional Density Plot: Dichte (cdplot) bzw. Histogramm (spineplot) von x für die Stufen von y
dotchart (Vektor)
stripchart (Vektor)
Plot der Werte mit der Fallnummer als y-Achse
matplot( x-Vektor, y-Vektor,...) x-y-Punktewolke mit Kennzeichnung einer Variablen z
sunflowerplot( x-Vektor, y-Vektor,...) Sunflower Scatter Plot (x-y-Punktewolke)
interaction.plot( x1-Faktor, x1-Faktor, y-Vektor,...) Interaktions-Plot (Varianzanalyse): Mittelwertverlauf von y für Gruppierungsfaktoren x1 (und x2)

- Fortgeschrittene Plot-Funktionen

faces(DataFrame) Chernoffs Faces zur Darstellung von Objekten bei multivariaten Daten (nur S-Plus)
stars(DataFrame) Sterne zur Darstellung von Objekten bei multivariaten Daten
contour( ) 3-dimensionale Plots
persp( ) 3-dimensionale Plots
image( ) Image Plots
curve(Funktion(x), x1,x2) Zeichnen einer Funktion im x-Bereich (x1,x2)
parcoord(DataFrame) (R)
parallel(DataFrame) (SPlus)
Parallel-Koordinaten-Plot (zur Darstellung mehrerer gleich skalierter Variablen) (in R/MASS)

- Trellis-Grafiken

(R-Paket "lattice")

Die Gruppenvariablen hinter dem | müssen entweder vom Typ factor sein oder es können metrische Variablen mit equal.count oder shingle (s.u.) in Intervalle eingeteilt werden. Sie werden durch * miteinander verbunden.
Bei allen Plot-Funktionen sollte data=Dataframe angegeben werden.

xyplot( y ~ x | Gruppenvariablen)
xyplot( y1+y2 ~ x | Gruppenvariablen)
Conditioning Plot: x-y-Plot für Wertekombinationen der Gruppenvariablen
cloud( y ~ x1*x2 | Gruppenvariablen) Conditioning Plot: x-y-z Plot für Wertekombinationen der Gruppenvariablen
bwplot(y ~ x-Faktor | Gruppenvariablen) Boxplots für Wertekombinationen der Gruppenvariablen
barchart(x1-Vektor ~ x2-Faktor | Gruppenvariablen) Barcharts für Wertekombinationen der Gruppenvariablen
histogram(~ y | Gruppenvariablen) Histogramme von y für Wertekombinationen der Gruppenvariablen
densityplot(~ y | Gruppenvariablen) Verteilungsdichten von y für Wertekombinationen der Gruppenvariablen
stripplot( y ~ x-Vektor| Gruppenvariablen )
dotplot( y-Vektor ~ x-Vektor| Gruppenvariablen )
Plot der Werte von y für die Werte von x
levelplot( y ~ x1*x2| Gruppenvariablen )
contourplot( y ~ x1*x2| Gruppenvariablen )
 
parallel(Dataframe)
splom(Dataframe)
Linienplot aller Variablen pro Fall
Matrix aller x-y-Plots

Bildung von Intervallen

equal.count( Vektor, Intervallzahl, overlap=Anteil ) Einteilung in Intervalle
shingle( Vektor, matrix(c(n Wertepaare), ncol=2,byrow=T) Einteilung in n Intervalle mit vorgegebenen Intervallgrenzen

Ausgewählte Parameter für Trellisgrafiken

between=list(x=...,y=...) Abstand zwischen den Panels (x: Spaltenabstand, y: Zeilenabstand)
par.strip.text=list(cex=...) Schriftgröße in Panels
par.settings=list(axis.text=list(cex=...)) Schriftgröße für Achsenbeschriftungen
par.settings=list(strip.background=list(col=...)) Farbe für Panel-Überschriften
layout=c(Spaltenzahl, Zeilenzahl) Spalten- bzw. Zeilenzahl der Panels
aspect=... aspect ratio (Verhältnis y/x-Achse)
auto.key=T Erzeugung einer elementaren Legende
trellis.par.get()
trellis.par.get("Parametername")
Anzeigen aller Trellis-Parameter
Anzeigen eines Trellis-Parameters
trellis.par.set("Parametername", list(keyword1=Wert,...)) permanente Veränderung eines Trellis-Parameters

- Grafiken der Zeitreihenanalyse

plot.ts(y ) Darstellung des Zeitreihenverlaufs
monthplot(y ) Darstellung der Saisonkomponente
cpgram(y ) Plot Cumulative Periodogram
acf(y, lag.max=...)
pacf(y, lag.max=... )
(partielle) Autokorrelationsfunktion
ccf(x,y, lag.max=...) Kreuzkorrelationsfunktion

Modifizierung von Grafiken (low-level Plots)

abline (a, b)) Gerade mit y-Schnittpunkt a und Steigung b
abline (lsfit(x-Vektor, y-Vektor)) Regressionsgerade y = a + bx
abline (h=c(y1, y2,...)) Parallelen zur x-Achse
abline (v=c(x1, x2,...)) Parallelen zur x-Achse
points ( x, y , pch=...)
points ( x-Vektor, y-Vektor , pch=...)
Zeichnen eines Punktes bzw. einer Punktfolge
lines ( x-Vektor, y-Vektor , lty=...) Zeichnen von Linien bzw. eines Polygonzugs
text ( x, y , "...")
text ( x-Vektor, y-Vektor, Char.Vektor)
Schreiben von Text bzw. einer Textfolge
text ( x-Vektor, y-Vektor,
   row.names(Dataframe) )
Beschriftung der x-y-Punktewolke mit der Fallkennung
title (main="...", sub="...") Titel (über der Grafik) bzw. Untertitel (unter der x-Achsenbeschriftung)
legend (x, y, Char.Vektor) Schreiben einer Legende
axis (1,...)
axis (2,...)
Zeichnen einer x- bzw. y-Achse
mtext ("...", side=..., line=...) Schreiben einer Achsenbeschriftung (side=Achse, line=Abstand)
identify (x-Vektor, y-Vektor)
identify (x-Vektor, y-Vektor,
   labels=row.names(Dataframe) )
Identifizierung und Beschriftung von Punkten der x-y-Punktewolke mit der Fallnummer bzw. Fallkennzeichnung, nach Klicks mit der Maus (Ende mit der rechten Maustaste)
locator(n)
z.B. text ( locator(1), "...")
Ausgabe der Koordinaten von n Punkten, die mit der Maus im Koordinatenkreuz ausgewählt wurden
z.B. Schreiben eines Textes an eine Stelle, die mit Maus ausgewählt wird
stamp() Schreiben von Datum und Uhrzeit (rechts unten)

Haiko Lüpsen
Letzte Änderung: 22.5.2023