Exploration von Verteilungen
In diesem Kapitel geben wir Ihnen einen Überblick zur grafischen Exploration von Verteilungen.
Script
# Einfaches Stamm-Blatt-Diagrammstem(bsp01$IQ)Console
The decimal point is 1 digit(s) to the right of the | 5 | 8 6 | 7 7 | 33556689999 8 | 1223334455666678 9 | 00122344455556788889 10 | 0000111111223344445555566 11 | 01113346666688889 12 | 113479 13 | 38 14 | 15 | 1Script
# Laden des Package aplpack: Das Package muss vorher installiert sein.library(aplpack)stem.leaf.backback(IQ_maenner, IQ_frauen, m=1)Console
1 | 2: represents 12, leaf unit: 1 IQ_maenner IQ_frauen____________________________________________________1 8| 5 | | 6 |7 14 996| 7 |33556899 98 6632| 8 |123344556678 2121 9886555432210| 9 |0445788 (7)(9) 665544431| 10 |0000111112234555 3012 888311| 11 |01346666689 146 431| 12 |179 33 83| 13 | | 14 |____________________________________________________HI: 151n: 42 58____________________________________________________Script
# Ein einfaches Balkendiagramm für die # Häufigkeitsverteilung des Geschlechts.barplot(table(bsp01$sex))Script
# Farbdefinition für Web-Grafikenmy_blue <- rgb(11,83,148, maxColorValue=255)my_blue2 <- rgb(207,226,234, maxColorValue=255)my_red <- rgb(166,77,121, maxColorValue=255)my_red2 <- rgb(234,209,220, maxColorValue=255)my_green <- rgb(39,78,19, maxColorValue=255)# Balkendiagramm mit der Definition einiger Argumentebarplot(# das table-Objekt als Grundlage für das Diagrammtable(bsp01$sex),# main bezeichnet den Titelmain="Geschlechterverteilung",# xlab bezeichnet die x-Achsexlab="Geschlecht"# ylab bezeichnet die y-Achseylab="absolute Häufigkeit",# names.arg definiert die Bezeichnungen der jeweiligen Gruppennames.arg=c("Frauen", "Männer"),# ylim gibt die Länge der y-Achse vom Minimum bis zum Maximum anylim=c(0,60),# space Einheiten zwischen den Balkenspace=0,# width Einheiten der Balkenbreite im # zugrundeliegenden Koordinatensystemwidth=1,# col Farbgebung: bei zwei Balken, zwei Farbwertecol=c(my_red, my_blue))Script
# Erstellung zweidimensionaler Balkendiagrammeattach(pedersen)barplot(table(sex, desired),beside=TRUE, horiz=T,xlab="Wie viele Sexualpartner wünschen Sie sich in dennächsten 30 Jahren?", ylab="Häufigkeit der Antworten", cex.names=.5)Script
# Anzeige der Dimensionen und Kategorien des Datensatzes Titaniclibrary(datasets)dimnames(Titanic)Console
$Class[1] "1st" "2nd" "3rd" "Crew"$Sex[1] "Male" "Female"$Age[1] "Child" "Adult"$Survived[1] "No" "Yes"Script
# Auswahl der Teiltabellen für das Geschlecht (2) und das Überleben (4)margin.table(Titanic, c(2,4))Console
SurvivedSex No YesMale 1364 367Female 126 344Script
# Zweidimensionales Häufigkeitsdiagramm mit absoluter Häufigkeitbarplot(sex_surv,ylab="absolute Häufigkeit", xlab="Überleben", beside=T,names.arg=c("Nein", "Ja"), main="Absolute Häufigkeit",col=c(my_blue, my_red))# Erstellung einer Legendelegend("topright", legend=c("Männer", "Frauen"), fill=c(my_blue, my_red))Script
# Punktdiagramm mit Hilfsliniendotchart(as.table(sort(state.x77[,1])[40:50]),xlab="Anzahl der Einwohner x 1000",main="Bevölkerungsreichste US-Bundesstaaten 1977")Script
# Einfaches Histogrammhist(x=bsp01$IQ, main="Histogramm für Häufigkeiten", ylab="Häufigkeit", xlab="IQ")Script
# Histogramm mit unterschiedlicher Intervallbreite# Definition der Intervallgrenzenbr <- c(50,65,75,80,85,90,95,100,105,110,115,120,130,160)# Zeichnung des Histogramms und Speicherung der Histogrammparameter in hh <- hist(bsp01$IQ,#Angabe der Intervallgrenzen definiert in brbreaks=br, freq=T, cex.main=.8, ylab="Häufigkeit",main="Histogramm mit ungleichen Intervallen\nund Häufigkeitswerten")# Code für die DatenbeschriftungB <- NULLfor (i in 1:13) B[i] <- mean(c(br[i],br[i+1]))text(B, h$count, labels=as.character(h$count), pos=1, cex=.5, offset=.2)Script
# Einfaches Boxplotboxplot(Stress~AZ, ylab="Stresserleben", xlab="Arbeitszufriedenheit",names=c("sehr gering", "gering", "mittel", "hoch", "sehr hoch"))Script
# Boxplots mit Kerben für verschiedene Gruppenboxplot(Stress~AZ, ylab="Stresserleben", xlab="Arbeitszufriedenheit",names=c("(1) sehr gering", "(2) gering", "(3) mittel", "(4) hoch","(5) sehr hoch"), notch=TRUE, cex.axis=.9)Script
# Violinplotlibrary(vioplot)vioplot(IQ_maenner, IQ_frauen, col=my_blue,names=c("Männer", "Frauen"))Script
# Streudiagramm für Körpergröße und IQplot(x=height, y=IQ, xlab="Körpergröße in cm", ylab="IQ-Punkte")PlotScript
# Berechnung der Koeffizienten der linearen Regressionlm(formula=fussball$tore~fussball$spiele)Console
Call:lm(formula = fussball$tore ~ fussball$spiele)Coefficients:(Intercept) fussball$spiele2.1280 0.4774Script
# Zeichnung des Streudiagramplot(fussball$spiele, fussball$tore, ylab="Anzahl geschossener Tore", xlab="Anzahl gespielter Spiele")# Hinzufügen der Regressionsgerade in das # Streudiagammabline(lm(fussball$tore~fussball$spiele))Script
#Zeichnen der Loess-Kurve mit normalverteilter # Gewichtungsfunktion (diese Gewichtung# wird standardmäßig mit der # Funktion scatter.smooth genutzt) mit einem Anteil# einbezogener Daten von 70% (span=.7)scatter.smooth( bsp02$income, bsp02$life_expectancy, ylab="Lebenserwartung in Jahren", xlab="Durchschnittliches pro Kopf Jahreseinkommen in USD", span=.7)Script
#Transformation mit dem natürlichen Logarithmuslog_income <- log(bsp02$income)scatter.smooth( log_income, bsp02$life_expectancy, span=(2/3), xaxt="n", ylab="Lebenserwartung in Jahren", xlab="Durchschnittliches pro Kopf Jahreseinkommen in USD")# x-Achse in Originaleinheitenaxis(1, at = 5:11, labels = round(exp(5:11)))Script
# Zufallsrauschenplot(jitter(bsp01$AZ),jitter(bsp01$LZ),ylab="Lebenszufriedenheit", xlab="Arbeitszufriedenheit")Script
# Sonnenblumendiagrammsunflowerplot(bsp01$AZ,bsp01$LZ, ylab="Lebenszufriedenheit",xlab="Arbeitszufriedenheit")# die Legende haben wir nachträglich hinzugefügttext(1,2, " 1 Wert", cex=.7, pos=4); text(1,1, " 4 Werte", cex=.7, pos=4)text(2,4, " 3 Werte", cex=.7, pos=4); text(2,3, " 11 Werte", cex=.7, pos=4)text(2,2, " 5 Werte", cex=.7, pos=4)Script
# Streudiagramm-Matrix mit Loess-Kurvenpairs(bsp01[,3:6], panel=panel.smooth, col.smooth="black", span=c(2/3), lwd=2)Script
# Dreidimensionales Streudiagramm für Stress, Lebens- und Arbeitszufriedenheitlibrary(scatterplot3d)scatterplot3d(jitter(bsp01$Stress),jitter(bsp01$LZ),jitter(bsp01$AZ),xlab="Stresserleben",ylab="Lebenszufriedenheit",zlab="Arbeitszufriedenheit",type="h")Script
# Bubbleplot mit dem Paket: googleVisbubble<- gvisBubbleChart( data=jitter_bsp, idvar="no", xvar="AZ", yvar="LZ", colorvar="Stress",sizevar="Stress", options=list(width=500, height=500, hAxis='{minValue:0, maxValue:5, title:"Arbeitszufriedenheit"}', vAxis='{minValue:0, maxValue:5, title: "Lebenszufriedenheit"}', sizeAxis='{minSize:1, maxSize:9}', legend='{position:"none"}', bubble='{stroke:"black", textStyle:{color:"none"}}', colorAxis='{colors:["grey", "grey"], legend: {position:"none"}}'))plot(bubble)Script
# Streudiagramm für Drittvariable mit Symbolenplot(jitter(bsp01$Stress),jitter(bsp01$AZ),# Dritte Variable als Symbolpch=bsp01$LZ,# x-Achse nur für die bessere Sichtbarkeit der Legende verändertxlim=c(3,11),cex.main=.8,xlab="Stresserleben",ylab="Arbeitszufriedenheit")# Hinzufügen der Legendelegend("topright", pch=1:5, legend=c("LZ=1","LZ=2","LZ=3","LZ=4","LZ=5"))