graphics (version 3.3.0)

segments: 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.


Run this code
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')

Run the code above in your browser using DataLab