Ever needed to add straight lines to an R plot? You can use abline in R to add straight lines to a plot. This R function is great for adding cutoffs or similar limits to an existing R plot.
# abline in r - basic syntax abline(a = NULL, b = NULL, h = NULL, v = NULL, reg = NULL, coef = NULL, col = NULL, lty = NULL, lwd= NULL)
The abline function can accept several arguments, with defaults of NULL:
- a – The intercept of the line, as a single value
- b – The slope of a line, as a single value
- h – the y-value(s) for horizontal line(s)
- v – the x-value(s) for vertical line(s).
- coef – a vector of length two giving the intercept and slope
- reg – a regression object generated by the coef method; intended to simplifying passing trend-lines from a regression calculation
- col – optional color parameter for the line
- lty – optional line type parameter
- lwd – optional line width parameter
Initial Setup – Examples
We’re going to use the airmiles dataset for this tutorial. This is one of the default datasets available in R.
> airmiles # default plot for abline in r tutorial > plot (airmiles)
As you can see, airmiles is a nice basic timeseries. It shows the growth of airline travel within the US.
Abline in r – Add Horizontal Lines
First, lets start by drawing a horizontal line on the graph. Maybe we are very interested in seeing when the total miles traveled is above 20,000.
# abline in R example - horizontal line abline(20000,0)
This draws a lovely horizontal line at the y = 20000 level.
Abline in r – Add Vertical Lines
We can also easily add a vertical line to the graph, similar to a dropline in Excel. Perhaps our client would like to see a line at the year 1955.
# abline in R example - horizontal line abline(v = 1955)
This draws a lovely horizontal line at the x = 1955 level.
Abline in r – Color and Line Types
Moving past basic black and white, we can easily adapt the abline function to draw lines in color and in different formats.
plot(airmiles) abline(v=1955, col='blue', lty=2, lwd=5)
Abline in r – Multiple Lines
In this next example, we’re going to draw a range of two lines on the chart. There’s syntax that can simplify this for horizontal lines.
plot(airmiles) abline(c(5000, 25000), col='blue', lty=2, lwd=4) abline(5000, 0, col='blue', lty=2, lwd=4) abline(25000, 0, col='blue', lty=2, lwd=4)
Abline in r – Drawing a slope
For our next example, we will demonstrate how to draw a sloped line.
A slope of 1 is a 45 degree line.
with(airquality, plot(Ozone, Temp)) abline(60, .5, col='blue', lty=2, lwd=4) abline(60, 0, col='blue', lty=2, lwd=4) abline(60, 1, col='blue', lty=2, lwd=4)