In Part 6, let’s look at basic plotting in R. Try entering the following three commands together (the semi-colon allows you to place several commands on the same line).
x <- seq(-4, 4, 0.2) ; y <- 2*x^2 + 4*x - 7
plot(x, y)
This is a very basic plot, but we can do much better. Let’s build a nicer plot in several steps.
plot(x, y, pch = 16, col = "red")
The argument pch = 16
gave us solid circles, while col = "red"
coloured those circles red.
Now try:
plot(x, y, pch = 16, col = "red", xlim = c(-8, 8), ylim = c(-20, 50), main = "My plot", xlab = "X variable" , ylab = "Y variable")
You can see what the main
argument and the xlim
and ylim
arguments achieved. Now try:
plot(x, y, pch = 16, col = "red", xlim = c(-8, 8), ylim = c(-20, 50), main = "My plot", xlab = "X variable" , ylab = "Y variable")
lines(x, y)
Note that the lines()
command is used after the plot()
command. Now enter the following syntax.
abline(h = 0)
abline(v = 0)
abline(-10, 2) # Draws a line of intercept -10 and slope 2.
text(4, 20, "Text") # Now your text is located at the point (4, 20) on your plot.
legend(-8, 36,"This is my Legend")
Your legend is now centred on the point (-8, 36)
rug(x)
The rug()
command indicates the location of points on the horizontal axis. Here is the final plot:
That wasn’t so hard! In blog 7 we will look at some more sophisticated plotting techniques in R.
Good bye for now!
David
Annex: R codes used
[code lang=”r”]
# Creating and plotting a function
x <- seq(-4, 4, 0.2); y <- 2*x^2 + 4*x – 7
plot(x, y)
# Building a nicer plot in several steps
# Version 1
plot(x, y, pch = 16, col = "red")
# Version 2
plot(x, y, pch = 16, col = "red", xlim = c(-8, 8), ylim = c(-20, 50), main = "My plot", xlab = "X variable", ylab = "Y variable")
# Version 3
plot(x, y, pch = 16, col = "red", xlim = c(-8, 8), ylim = c(-20, 50), main = "My plot", xlab = "X variable", ylab = "Y variable")
lines(x, y)
# Additional customisation
abline(h = 0)
abline(v = 0)
abline(-10, 2) # Draws a line of intercept -10 and slope 2.
text(4, 20, "Text") # Now your text is located at the point (4, 20) on your plot.
legend(-8, 36,"This is my Legend")
rug(x)
[/code]