Cursus
Plot character of pch is het standaardargument om het teken in te stellen dat wordt uitgezet in een aantal R-functies.
Toelichtende tekst kun je op verschillende manieren aan een plot toevoegen, zoals aslabels, titels, legenda’s of tekst rechtstreeks in de plot. Basisgrafiekfuncties in R maken doorgaans standaard aslabels, maar die kun je overschrijven met het argument xlab() om je eigen label voor de x-as op te geven en ylab() om je eigen label voor de y-as op te geven.
Sommige basisgrafiekfuncties geven ook standaardtitels, maar ook die kun je overschrijven, zoals hier:
library(MASS)
par(mfrow = c(1, 2))
plot(density(geyser$waiting))
plot(density(geyser$waiting), main = "Estimated density: \n Old Faithful waiting times")

De plot links gebruikt de standaardtitel van de functie density. Die vertelt ons dat de plot met die functie is gemaakt met de standaardopties en geeft ook de R-specificatie voor de variabele waarvan we de dichtheid tekenen. In de plot rechts is deze standaardtitel overschreven door het optionele argument main te specificeren. Merk op dat we door het regeleinde-teken, backslash n, op te nemen, een titel van twee regels maken in deze tekenreeks.
text()-functie
Net als de functies lines en points is text een low-level grafiekfunctie waarmee je toelichtende tekst aan de bestaande plot kunt toevoegen. Hiervoor moet je waarden opgeven voor x en y, de coördinaten in de plot waar de tekst moet verschijnen, en labels, een karaktervector die de toe te voegen tekst specificeert.
text(x, y, adj)

Standaard wordt de toegevoegde tekst horizontaal gecentreerd op de opgegeven x-waarden, maar met het optionele argument adj kun je de uitlijning aanpassen.
Let op: het argument adj van de functie text() bepaalt de horizontale plaatsing van de tekst en kan elke waarde aannemen tussen 0 (links uitgelijnd) en 1 (rechts uitgelijnd). Dit argument kan zelfs waarden buiten dit bereik aannemen. Als je deze waarde negatief maakt, begint de tekst rechts van de opgegeven x-positie. Op dezelfde manier zorgt een waarde groter dan 1 ervoor dat de tekst links van de x-positie eindigt.
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")

Lettertypen, oriëntaties en andere teksteigenschappen
Hieronder zie je hoe je het uiterlijk van toegevoegde tekst kunt aanpassen met optionele argumenten van de functie text. Standaard wordt tekst horizontaal over de pagina geplaatst, maar dit kun je wijzigen met het argument srt, dat de hoek ten opzichte van de horizontale as aangeeft.
Zo helt de rode tekst omhoog doordat srt is ingesteld op de positieve waarde 30 graden, terwijl de groene tekst omlaag helt met srt gelijk aan -45.
Je kunt ook de kleur van de tekst instellen met het argument col, en de rode tekst laat zien dat je de tekstgrootte kunt wijzigen met het argument cex. Met cex = 1.2 maak je de tekst 20% groter dan normaal.
Een andere teksteigenschap die in dit voorbeeld is aangepast, is het lettertype, ingesteld met het argument font. De standaardwaarde is font = 1 (normale tekst), terwijl font = 2 vetgedrukt specificeert, font = 3 cursief, en font = 4 zowel vetgedrukt als cursief.
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")

Tekstpositie, -grootte en -lettertype aanpassen
In het volgende voorbeeld ga je:
- Een plot maken van
MPG.citytegenHorsepoweruit het data frameCars93, waarbij de data worden weergegeven als open cirkels (standaardpch). - De variabele
index3construeren met de functiewhich(), die de rijnummers identificeert van alle auto’s met 3 cilinders. - De functie
points()gebruiken om volle cirkels (pch = 16) te leggen over alle punten in de plot die 3-cilinderauto’s voorstellen. - De functie
text()gebruiken met de variabeleMakezoals eerder om labels rechts van de 3-cilinderauto’s toe te voegen, maar nu metadj = 0.2om de labels verder naar rechts te plaatsen, met het argumentcexom de labelgrootte met 20 procent te vergroten, en met het argumentfontom de labels vet cursief te maken.
# 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)
Als we bovenstaande code uitvoeren, levert dat het volgende resultaat op:

Wil je meer leren over het toevoegen van tekst aan plots? Bekijk dan deze video uit onze cursus Data Visualization in R.
Deze content is afkomstig uit DataCamps cursus Data Visualization in R van Ronald Pearson.
