Add Connected Line Segments to a Plot

A generic function taking coordinates given in various ways and joining the corresponding points with line segments.

lines(x, …)

# S3 method for default lines(x, y = NULL, type = "l", …)

x, y

coordinate vectors of points to join.


character indicating the type of plotting; actually any of the types as in plot.default.

Further graphical parameters (see par) may also be supplied as arguments, particularly, line type, lty, line width, lwd, color, col and for type = "b", pch. Also the line characteristics lend, ljoin and lmitre.


The coordinates can be passed in a plotting structure (a list with x and y components), a two-column matrix, a time series, …. See xy.coords. If supplied separately, they must be of the same length.

The coordinates can contain NA values. If a point contains NA in either its x or y value, it is omitted from the plot, and lines are not drawn to or from such points. Thus missing values can be used to achieve breaks in lines.

For type = "h", col can be a vector and will be recycled as needed.

lwd can be a vector: its first element will apply to lines but the whole vector to symbols (recycled as necessary).


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

See Also

lines.formula for the formula method; points, particularly for type %in% c("p","b","o"), plot, and the workhorse function plot.xy.

abline for drawing (single) straight lines.

par for line type (lty) specification and how to specify colors.

  • lines
  • lines.default
library(graphics) # draw a smooth line through a scatter plot plot(cars, main = "Stopping Distance versus Speed") lines(stats::lowess(cars))
Documentation reproduced from package graphics, version 3.4.0, License: Part of R 3.4.0

Community examples

Looks like there are no examples yet.