Kurs
Der Plot-Character oder pch ist das Standardargument, um das Zeichen festzulegen, das in verschiedenen R-Funktionen gezeichnet wird.
Erklärender Text lässt sich in mehreren Formen zu einem Plot hinzufügen, zum Beispiel als Achsenbeschriftungen, Titel, Legenden oder direkt im Plot. Basis-Grafikfunktionen in R erzeugen standardmäßig Achsenbeschriftungen, die sich jedoch mit den Argumenten xlab() für die x-Achse und ylab() für die y-Achse überschreiben lassen.
Einige Basisfunktionen vergeben auch Standardtitel, die sich wie hier gezeigt ebenfalls überschreiben lassen:
library(MASS)
par(mfrow = c(1, 2))
plot(density(geyser$waiting))
plot(density(geyser$waiting), main = "Estimated density: \n Old Faithful waiting times")

Der Plot links nutzt den von der Funktion density zurückgegebenen Standardtitel. Er zeigt, dass der Plot mit den Standardoptionen dieser Funktion erstellt wurde, und nennt außerdem die R-Spezifikation der Variablen, deren Dichte dargestellt wird. Im rechten Plot wurde dieser Standardtitel durch das optionale Argument main ersetzt. Indem der Zeilenumbruch "\n" in den Titel aufgenommen wird, entsteht ein zweizeiliger Titel.
text() Function
Wie lines und points ist text eine Low-Level-Grafikfunktion, mit der du erklärenden Text zu einem bestehenden Plot hinzufügst. Dafür gibst du die Koordinaten x und y an, also die Stelle im Plot, an der der Text erscheinen soll, sowie labels, einen Zeichenvektor mit dem einzufügenden Text.
text(x, y, adj)

Standardmäßig wird der Text über den angegebenen x-Werten zentriert, aber mit dem optionalen Argument adj lässt sich die Ausrichtung anpassen.
Wichtig: Das Argument adj in der Funktion text() steuert die horizontale Platzierung des Textes und kann jeden Wert zwischen 0 (linksbündig) und 1 (rechtsbündig) annehmen. Tatsächlich sind auch Werte außerhalb dieses Bereichs möglich. Negative Werte lassen den Text rechts der angegebenen x-Position beginnen. Entsprechend endet der Text bei adj größer als 1 links der x-Position.
library(MASS)
plot(UScereal$fibre)
text(5, 28, "<-- Outliers [left-justified text at (5, 28)]", adj = 0)
text(65, 23, "[Right-justified text at (65, 23)]", adj = 1, col = "red")
text(5, 28, "[Centered text (default) at (31, 18)]", col = "blue")

Schriften, Ausrichtungen und weitere Texteigenschaften
Unten siehst du, wie sich das Erscheinungsbild des hinzugefügten Textes über optionale Argumente der Funktion text anpassen lässt. Standardmäßig wird Text horizontal gesetzt, das lässt sich jedoch mit dem Argument srt ändern, das den Winkel relativ zur Horizontalen angibt.
Der rote Text steigt nach oben, weil srt als positiver Wert 30 Grad gesetzt wurde, während der grüne Text mit srt = -45 nach unten geneigt ist.
Mit dem Argument col legst du die Textfarbe fest. Der rote Text zeigt außerdem, dass sich die Textgröße mit cex ändern lässt. Mit cex = 1.2 ist der Text 20% größer als normal.
Eine weitere Eigenschaft ist die Schriftart, gesteuert über font. Der Standardwert font = 1 steht für normal, font = 2 für fett, font = 3 für kursiv und font = 4 für fett kursiv.
library(MASS)
plot(Boston$rad)
# "Inner city" with adjusted colour and rotation
text(350, 24, adj = 1, "Inner city? -->", srt = 30, font = 2, cex = 1.2, col = "red")
# "Suburbs" with adjusted colour and rotation
text(100, 15, "Suburbs? -->", srt = -45, font = 3, col = "green")
title("Text with varying orientations, fonts, sizes & colors")

Textposition, -größe und Schrift anpassen
Im folgenden Beispiel wirst du:
- Einen Plot von
MPG.citygegenHorsepoweraus dem Data FrameCars93erstellen, mit offenen Kreisen als Datenpunkte (Standard-pch). - Die Variable
index3mitwhich()konstruieren, um die Zeilennummern aller 3-Zylinder-Autos zu identifizieren. - Mit
points()gefüllte Kreise (pch = 16) über die Punkte legen, die 3-Zylinder-Autos darstellen. - Mit
text()und der VariableMakewie zuvor Labels rechts neben den 3-Zylinder-Autos platzieren, diesmal jedoch mitadj = 0.2weiter nach rechts verschieben, mitcexdie Labelgröße um 20 Prozent erhöhen und mitfontfett kursiv setzen.
# Plot MPG.city vs. Horsepower as open circles
plot(Cars93$Horsepower, Cars93$MPG.city)
# Create index3, pointing to 3-cylinder cars
index3 <- which(Cars93$Cylinders == 3)
# Highlight 3-cylinder cars as solid circles
points(Cars93$Horsepower[index3],
Cars93$MPG.city[index3],
pch = 16)
# Add car names, offset from points, with larger bold text
text(Cars93$Horsepower[index3],
Cars93$MPG.city[index3],
Cars93$Make[index3],
adj = -0.2, cex = 1.2, font = 4)
Wenn du den obigen Code ausführst, erhältst du folgendes Ergebnis:

Mehr zum Hinzufügen von Text zu Plots findest du in diesem Video aus unserem Kurs Data Visualization in R.
Dieser Inhalt stammt aus DataCamps Kurs Data Visualization in R von Ronald Pearson.