Curve functie voor grafieken

Hoe je snel en eenvoudig grafieken kunt maken met de functie curve.

Ben Welman
04-04-2020

Een zeer handige functie in R is curve() waarmee je op een eenvoudige manier grafieken kunt tekenen. De syntax is

curve(expr, from = NULL, to = NULL, n = 101, add = FALSE,
      type = "l", xname = "x", xlab = xname, ylab = NULL,
      log = NULL, xlim = NULL, ...)

Een zeer eenvoudige opdracht is de volgende

Toon code
curve(expr = x+1)
Grafiek van f(x) = x +1

Figure 1: Grafiek van f(x) = x +1

Voor de functie f(x) = x kun je niet expr = x gebruiken. Je krijgt dan een foutmelding omdat dit niet als een expressie herkend wordt, waardoor gezocht wordt naar een object met de naam x. Je kunt de foutmelding vermijden doorexpr = (x) te gebruiken.

Toon code
curve(expr = sin(x) + cos(x), from = 0, to = 2*pi, 
      ylab = "y", main = "y = sin(x) + cos(x)", col = "blue", lwd=2)
Grafiek met gespecificeerd domein voor x en iets dikkere blauwe lijn.

Figure 2: Grafiek met gespecificeerd domein voor x en iets dikkere blauwe lijn.

Grid toevoegen

Erg handig is verder om tevens gebruik te maken van grid() die een rechthoekige grid van nx bij ny aan een bestaande grafiek toevoegt. Deze heeft als argumenten

In het volgende voorbeeld wordt de grid gebruikt met daarnaast de schaal voor de y-as. Hierdoor kun je goed zien dat je de grafiek van \(|x^2 -1|\) kunt krijgen uit de grafiek van \(x^2 -1\) door bij deze laatste het deel dat onder de X-as ligt te spiegelen t.o.v. de x-as.

Toon code
par(mfrow = c(1,2))
curve(expr = x^2 - 1, from = -2, to = 2, 
      ylim = c(-1,3), ylab = "y", main = "x² - 1")
grid()
curve(expr = abs(x^2 - 1), from = -2, to = 2, 
      ylim = c(-1,3), ylab = "y", main = "|x² - 1|")
grid()
Twee grafieken met elkaar vergeleken.

Figure 3: Twee grafieken met elkaar vergeleken.

Meerdere grafieken in 1 figuur

Nadat de eerste grafiek getekend is kun je meerdere grafieken toevoegen via het argument add = TRUE.

Toon code
curve(expr = x^2, from = -3, to = 3, ylab = "y", col = "green")
curve(expr = -x + 2, add = TRUE, col = "red")
curve(expr = 0*x + 3, add = TRUE, col = "blue")
grid()
Meerdere grafieken in één figuur.

Figure 4: Meerdere grafieken in één figuur.

Logaritmische schaal

Met het argument log kun je een logaritmische schaal (natuurlijke logaritme) specificeren. Mogelijkheden: log = "x", log = "y" en log="xy". Zie hierna het voorbeeld voor \(y = e^x\).

Toon code
curve(expr = exp(x), from = 0, to = 10, log = "y", ylab = "Ln(y)", main = "y = e^x")

Naam variabele

De naam van de variabele in het functievoorschrift is standaard x. Met het argument xname kun je deze wijzigen.

Toon code
curve(expr = sin, from = -2*pi, to = 2*pi, xname = "t")