R Language
Basisplot
Suche…
Parameter
Parameter | Einzelheiten |
---|---|
x | x-Achsenvariable Kann entweder data$variablex oder data[,x] liefern |
y | y-Achsenvariable. Kann entweder data$variabley oder data[,y] liefern |
main | Haupttitel der Handlung |
sub | Optionaler Untertitel der Handlung |
xlab | Beschriftung für die x-Achse |
ylab | Beschriftung für die y-Achse |
pch | Eine ganze Zahl oder ein Zeichen, das ein Plot-Symbol anzeigt |
col | Ganzzahl oder Zeichenfolge, die die Farbe angibt |
type | Art des Grundstücks "p" für Punkte, "l" für Linien, "b" für beide, "c" für den Linienteil "b" , "o" für beide "überzeichnet", "h" für "Histogramm" ( oder "hohe Dichte") vertikale Linien, "s" für Treppenstufen, "S" für andere Schritte, "n" für kein Plotten |
Bemerkungen
Bei den im Abschnitt "Parameter" aufgeführten Elementen handelt es sich um einen kleinen Bruchteil der möglichen Parameter, die von der par
Funktion geändert oder eingestellt werden können. Siehe par
für eine vollständigere Liste. Zusätzlich verfügen alle Grafikgeräte, einschließlich der systemspezifischen interaktiven Grafikgeräte, über eine Reihe von Parametern, mit denen die Ausgabe angepasst werden kann.
Grundlegende Darstellung
Ein grundlegendes Diagramm wird durch Aufrufen von plot()
. Hier verwenden wir den Datenrahmen der eingebauten cars
, der die Geschwindigkeit der Autos und die zurückgelegten Entfernungen in den 1920er Jahren enthält. (Weitere Informationen zum Datensatz finden Sie in der Hilfe (Autos)).
plot(x = cars$speed, y = cars$dist, pch = 1, col = 1,
main = "Distance vs Speed of Cars",
xlab = "Speed", ylab = "Distance")
Wir können viele andere Variationen im Code verwenden, um das gleiche Ergebnis zu erzielen. Wir können die Parameter auch ändern, um unterschiedliche Ergebnisse zu erhalten.
with(cars, plot(dist~speed, pch = 2, col = 3,
main = "Distance to stop vs Speed of Cars",
xlab = "Speed", ylab = "Distance"))
Zusätzliche Funktionen können zu diesem Diagramm hinzugefügt werden, indem points()
, text()
, mtext()
, lines()
, grid()
usw. mtext()
.
plot(dist~speed, pch = "*", col = "magenta", data=cars,
main = "Distance to stop vs Speed of Cars",
xlab = "Speed", ylab = "Distance")
mtext("In the 1920s.")
grid(,col="lightblue")
Matplot
matplot
ist nützlich, um mehrere Sätze von Beobachtungen von demselben Objekt, insbesondere von einer Matrix, in derselben Grafik schnell zu matplot
.
Hier ist ein Beispiel für eine Matrix, die vier Gruppen von Zufallszahlen enthält, die jeweils einen anderen Mittelwert haben.
xmat <- cbind(rnorm(100, -3), rnorm(100, -1), rnorm(100, 1), rnorm(100, 3))
head(xmat)
# [,1] [,2] [,3] [,4]
# [1,] -3.072793 -2.53111494 0.6168063 3.780465
# [2,] -3.702545 -1.42789347 -0.2197196 2.478416
# [3,] -2.890698 -1.88476126 1.9586467 5.268474
# [4,] -3.431133 -2.02626870 1.1153643 3.170689
# [5,] -4.532925 0.02164187 0.9783948 3.162121
# [6,] -2.169391 -1.42699116 0.3214854 4.480305
Eine Möglichkeit , alle diese Beobachtungen auf dem gleichen Graphen zeichnen soll man tun plot
Anruf durch drei weitere gefolgt points
oder lines
Anrufe.
plot(xmat[,1], type = 'l')
lines(xmat[,2], col = 'red')
lines(xmat[,3], col = 'green')
lines(xmat[,4], col = 'blue')
Dies ist jedoch sowohl langwierig als auch problematisch, da unter anderem die Achsengrenzen standardmäßig durch plot
festgelegt werden, um nur in die erste Spalte zu passen.
In dieser Situation ist es viel praktischer, die matplot
Funktion zu verwenden, die nur einen Aufruf erfordert und automatisch die Achsenbegrenzungen berücksichtigt und die Ästhetik für jede Spalte ändert, um sie unterscheidbar zu machen.
matplot(xmat, type = 'l')
Beachten Sie, dass matplot
standardmäßig sowohl Farbe ( col
) als auch Linientyp ( lty
) lty
da dies die Anzahl möglicher Kombinationen erhöht, bevor sie wiederholt werden. Jede dieser Ästhetiken (oder beide) kann jedoch auf einen einzigen Wert festgelegt werden ...
matplot(xmat, type = 'l', col = 'black')
... oder einen benutzerdefinierten Vektor (der nach den Standardregeln für den R-Vektor-Recycling auf die Anzahl der Spalten zurückgeführt wird)
matplot(xmat, type = 'l', col = c('red', 'green', 'blue', 'orange'))
Grafische Standardparameter, einschließlich main
, xlab
, xmin
, funktionieren genauso wie beim plot
. Für mehr darüber, siehe ?par
.
Wie plot
, gegeben , wenn nur ein Objekt, matplot
nimmt das ist y
Variable und verwendet die Indizes für x
. x
und y
können jedoch explizit angegeben werden.
matplot(x = seq(0, 10, length.out = 100), y = xmat, type='l')
In der Tat können sowohl x
als auch y
Matrizen sein.
xes <- cbind(seq(0, 10, length.out = 100),
seq(2.5, 12.5, length.out = 100),
seq(5, 15, length.out = 100),
seq(7.5, 17.5, length.out = 100))
matplot(x = xes, y = xmat, type = 'l')
Histogramme
Histogramme ermöglichen eine Pseudo-Darstellung der zugrunde liegenden Verteilung der Daten.
hist(ldeaths)
hist(ldeaths, breaks = 20, freq = F, col = 3)
Plots kombinieren
Es ist oft nützlich, mehrere Diagrammtypen in einem Diagramm zu kombinieren (z. B. ein Balkendiagramm neben einem Streudiagramm.) R macht dies mit Hilfe der Funktionen par()
und layout()
einfach.
par()
par
verwendet die Argumente mfrow
oder mfcol
, um eine Matrix aus nrows und ncols c(nrows, ncols)
die als Raster für Ihre Plots dienen. Das folgende Beispiel zeigt, wie vier Diagramme in einem Diagramm kombiniert werden:
par(mfrow=c(2,2))
plot(cars, main="Speed vs. Distance")
hist(cars$speed, main="Histogram of Speed")
boxplot(cars$dist, main="Boxplot of Distance")
boxplot(cars$speed, main="Boxplot of Speed")
layout()
Das layout()
ist flexibler und ermöglicht es Ihnen, die Position und die Ausdehnung jedes Diagramms innerhalb des endgültigen kombinierten Diagramms anzugeben. Diese Funktion erwartet ein Matrixobjekt als Eingabe:
layout(matrix(c(1,1,2,3), 2,2, byrow=T))
hist(cars$speed, main="Histogram of Speed")
boxplot(cars$dist, main="Boxplot of Distance")
boxplot(cars$speed, main="Boxplot of Speed")
Dichteplot
Eine sehr nützliche und logische Folge von Histogrammen wäre die Darstellung der geglätteten Dichtefunktion einer Zufallsvariablen. Eine durch den Befehl erzeugte Grunddarstellung
plot(density(rnorm(100)),main="Normal density",xlab="x")
würde aussehen wie
Sie können ein Histogramm und eine Dichtekurve mit überlagern
x=rnorm(100)
hist(x,prob=TRUE,main="Normal density + histogram")
lines(density(x),lty="dotted",col="red")
was gibt
Empirische kumulative Verteilungsfunktion
Eine sehr nützliche und logische Folge von Histogrammen und Dichtediagrammen wäre die empirische kumulative Verteilungsfunktion. Wir können dazu die Funktion ecdf()
verwenden. Eine durch den Befehl erzeugte Grunddarstellung
plot(ecdf(rnorm(100)),main="Cumulative distribution",xlab="x")
Erste Schritte mit R_Plots
- Streudiagramm
Sie haben zwei Vektoren und möchten diese grafisch darstellen.
x_values <- rnorm(n = 20 , mean = 5 , sd = 8) #20 values generated from Normal(5,8)
y_values <- rbeta(n = 20 , shape1 = 500 , shape2 = 10) #20 values generated from Beta(500,10)
Wenn Sie ein Diagramm y_values
möchten, das die y_values
in der vertikalen Achse und die x_values
in der horizontalen Achse hat, können Sie die folgenden Befehle verwenden:
plot(x = x_values, y = y_values, type = "p") #standard scatter-plot
plot(x = x_values, y = y_values, type = "l") # plot with lines
plot(x = x_values, y = y_values, type = "n") # empty plot
Sie können ?plot()
in die Konsole eingeben, um weitere Optionen zu erfahren.
- Box-Plot
Sie haben einige Variablen und möchten deren Verteilung untersuchen
#boxplot is an easy way to see if we have some outliers in the data.
z<- rbeta(20 , 500 , 10) #generating values from beta distribution
z[c(19 , 20)] <- c(0.97 , 1.05) # replace the two last values with outliers
boxplot(z) # the two points are the outliers of variable z.
- Histogramme
Einfache Möglichkeit, Histogramme zu zeichnen
hist(x = x_values) # Histogram for x vector
hist(x = x_values, breaks = 3) #use breaks to set the numbers of bars you want
- Kreisdiagramme
Wenn Sie die Frequenzen einer Variablen visualisieren möchten, zeichnen Sie einfach einen Kreis
Zuerst müssen wir Daten mit Frequenzen erzeugen, zum Beispiel:
P <- c(rep('A' , 3) , rep('B' , 10) , rep('C' , 7) )
t <- table(P) # this is a frequency matrix of variable P
pie(t) # And this is a visual version of the matrix above