################################################ ### Programmieren mit statistischer Software ### ### Graphiken mit graphics ### ################################################ ### Beispieldatensatz ### data("iris") data("Titanic") ### Titanic-Datensatz aufbereiten ### freq <- as.vector(Titanic) var <- expand.grid(dimnames(Titanic)) # Gruppierter Datensatz mit Häufigkeiten table_Titanic <- data.frame(var,"Frequency"=freq) # Datensatz mit Einzelbeobachtungen data_Titanic <- data.frame("Class"=rep(var[,1],freq), "Sex"=rep(var[,2],freq), "Age"=rep(var[,3],freq), "Survived"=rep(var[,4],freq)) ### Formatierungsbefehle für Graphiken mit graphics ### ## Dokumentation ?par ## Beispiel: outer margin (Aufrufen, Veränderen, Zurücksetzen) op <- par(no.readonly=TRUE) par("oma") par(oma=c(2,2,2,2)) par("oma") par(op) par("oma") ### Unterschiedlichste Graphiken mit Standardfunktionen ### ## Balken/Säulendiagramm barplot(table(data_Titanic$Class)) barplot(table(data_Titanic$Class, data_Titanic$Sex), legend=TRUE) # nützliches Argument: beside ## Histogramm hist(iris$Sepal.Length, main = "", col = "darkgray", xlab="Kelchblattlänge", ylab="Absolute Häufigkeit") # nützliches Argument: breaks ## Boxplot boxplot(Sepal.Width~Species, names=levels(iris$Species), data=iris) # nützliches Argument: varwidth ## Streudiagramm plot(iris$Sepal.Width,iris$Sepal.Length, xlab="Kelchblattbreite", ylab="Kelchblattlänge") plot(Sepal.Length~Sepal.Width, data = iris, xlab="Kelchblattbreite", ylab="Kelchblattlänge") # nützliches Argument: pch ## Streudiagrammmatrix pairs(iris, col=iris$Species) # nützliches Argument: panel ## Mosaikplot mosaicplot(Titanic) mosaicplot(~ Sex + Survived, data = Titanic) # nützliches Argument: shade ### Einen Plot von Grund auf erstellen ### ## Beispieldaten: zwei Variablen a und b a <- seq(-5,5) b <- seq(-5,5) ## Grundstruktur plot.new() plot.window(xlim=range(a),ylim=range(b)) points(a,b,pch=19) lines(a,b) axis(1) axis(2) box() ## Weitere nützliche Befehle zur Erstellung von eigenen Graphiken ? text ? mtext ## Illustration der Graphikbereiche # margins und outer margins op <- par(mar=c(4,4,4,4), oma=c(2,2,2,2)) # Plot plot(a, b, xlab="a", ylab="b", pch=19) box("figure", lty="dashed", col="orange") # Plot area box("plot", lty="solid", col="red") text(x=4, y=-4, labels="Plot Area", col="red", cex=1.5) # Inner margin area box("inner",lty="dashed", col="blue") mtext("Inner Margin Area", side=3, line=1, adj=1, cex=1.5, col="blue", outer=FALSE) # Outer margin area box("outer", lty="solid", col="green",lwd=4) mtext("Outer Margin Area", side=1, line=0.5, adj=1, cex=1.5, col="green", outer=TRUE) # Zusätzliche Beschriftung mtext("Rechts", 4, at=2, line=0.25, cex=1.2, col=grey(0.4), las=1) par(op) ### Mehrere Graphiken in einem Fenster ### par(mfrow=c(2,2)) # ergibt Fenster mit zwei Zeilen und zwei Spalten layout(mat=matrix(c(1,2,3,4), nrow=2, ncol=2, byrow=TRUE)) # nützliche Argumente: widths, heights dev.off() # Layout-Einstellungen löschen ### Graphiken speichern ### ## als pdf pdf(file="boxplot.pdf", width=7, height=7) boxplot(iris$Sepal.Length, iris$Sepal.Width, col=2:3, names=c("Kelchblattlänge", "Kelchblattbreite")) dev.off() # weitere Formate: postscript(), png(), win.metafile()