R: Add Straight Lines to a Plot

abline {graphics} | R Documentation

## Add Straight Lines to a Plot

### Description

This function adds one or more straight lines through the current plot.

### Usage

    abline(a = NULL, b = NULL, h = NULL, v = NULL, reg = NULL,
           coef = NULL, untf = FALSE, ...)

### Arguments

`a, b` | the intercept and slope, single values.
`untf` | logical asking whether to untransform. See ‘Details’.
`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` | an object with a `coef` method. See ‘Details’.
`...` | graphical parameters such as `col`, `lty` and `lwd` (possibly as vectors: see ‘Details’) and `xpd` and the line characteristics `lend`, `ljoin` and `lmitre`.

### Details

Typical usages are

    abline(a, b, untf = FALSE, \dots)
    abline(h =, untf = FALSE, \dots)
    abline(v =, untf = FALSE, \dots)
    abline(coef =, untf = FALSE, \dots)
    abline(reg =, untf = FALSE, \dots)

The first form specifies the line in intercept/slope form (alternatively `a` can be specified on its own and is taken to contain the slope and intercept in vector form).

The `h=` and `v=` forms draw horizontal and vertical lines at the specified coordinates.

The `coef` form specifies the line by a vector containing the slope and intercept.

`reg` is a regression object with a `coef` method. If this returns a vector of length 1 then the value is taken to be the slope of a line through the origin, otherwise, the first 2 values are taken to be the intercept and slope.

If `untf` is true, and one or both axes are log-transformed, then a curve is drawn corresponding to a line in original coordinates, otherwise a line is drawn in the transformed coordinate system. The `h` and `v` parameters always refer to original coordinates.

The graphical parameters `col`, `lty` and `lwd` can be specified; see `par` for details. For the `h=` and `v=` usages they can be vectors of length greater than one, recycled as necessary.

Specifying an `xpd` argument for clipping overrides the global `par("xpd")` setting used otherwise.

### References

Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) The New S Language. Wadsworth & Brooks/Cole.

Murrell, P. (2005) R Graphics. Chapman & Hall/CRC Press.

### See Also

`lines` and `segments` for connected and arbitrary lines given by their endpoints. `par`.

### Examples

    ## Setup up coordinate system (with x == y aspect ratio):
    plot(c(-2,3), c(-1,5), type = "n", xlab = "x", ylab = "y", asp = 1)
    ## the x- and y-axis, and an integer grid
    abline(h = 0, v = 0, col = "gray60")
    text(1,0, "abline( h = 0 )", col = "gray60", adj = c(0, -.1))
    abline(h = -1:5, v = -2:3, col = "lightgray", lty = 3)
    abline(a = 1, b = 2, col = 2)
    text(1,3, "abline( 1, 2 )", col = 2, adj = c(-.1, -.1))

    ## Simple Regression Lines:
    require(stats)
    sale5 <- c(6, 4, 9, 7, 6, 12, 8, 10, 9, 13)
    plot(sale5)
    abline(lsfit(1:10, sale5))
    abline(lsfit(1:10, sale5, intercept = FALSE), col = 4) # less fitting

    z <- lm(dist ~ speed, data = cars)
    plot(cars)
    abline(z) # equivalent to abline(reg = z) or
    abline(coef = coef(z))

    ## trivial intercept model
    abline(mC <- lm(dist ~ 1, data = cars)) ## the same as
    abline(a = coef(mC), b = 0, col = "blue")

[Package graphics version 4.0.5 Index]