Add Line Segments to a Plot

Draw line segments between pairs of points.

segments(x0, y0, x1 = x0, y1 = y0,
         col = par("fg"), lty = par("lty"), lwd = par("lwd"),
x0, y0

coordinates of points from which to draw.

x1, y1

coordinates of points to which to draw. At least one must be supplied.

col, lty, lwd

graphical parameters as in par, possibly vectors. NA values in col cause the segment to be omitted.

further graphical parameters (from par), such as xpd and the line characteristics lend, ljoin and lmitre.


For each i, a line segment is drawn between the point (x0[i], y0[i]) and the point (x1[i], y1[i]). The coordinate vectors will be recycled to the length of the longest.

The graphical parameters col, lty and lwd can be vectors of length greater than one and will be recycled if necessary.


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

See Also

arrows, polygon for slightly easier and less flexible line drawing, and lines for the usual polygons.

  • segments
library(graphics) x <- stats::runif(12); y <- stats::rnorm(12) i <- order(x, y); x <- x[i]; y <- y[i] plot(x, y, main = "arrows(.) and segments(.)") ## draw arrows from point to point : s <- seq(length(x)-1) # one shorter than data arrows(x[s], y[s], x[s+1], y[s+1], col= 1:3) s <- s[-length(s)] segments(x[s], y[s], x[s+2], y[s+2], col= 'pink')
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.