arrows {graphics}R Documentation

Add Arrows to a Plot


Draw arrows between pairs of points.


arrows(x0, y0, x1, y1, length = 0.25, angle = 30, code = 2,
       col = par("fg"), lty = NULL, lwd = par("lwd"), xpd = NULL)


x0, y0 coordinates of points from which to draw.
x1, y1 coordinates of points to which to draw.
length length of the edges of the arrow head (in inches).
angle angle from the shaft of the arrow to the edge of the arrow head.
code integer code, determining kind of arrows to be drawn.
col, lty, lwd, xpd usual graphical parameters as in par.


For each i, an arrow is drawn between the point (x0[i], y0[i]) and the point (x1[i],y1[i]).

If code=2 an arrowhead is drawn at (x0[i],y0[i]) and if code=1 an arrowhead is drawn at (x1[i],y1[i]). If code=3 a head is drawn at both ends of the arrow. Unless length = 0, when no head is drawn.

The graphical parameters col and lty can be used to specify a color and line texture for the line segments which make up the arrows (col may be a vector).

The direction of a zero-length arrow is indeterminate, and hence so is the direction of the arrowheads. To allow for rounding error, arrowheads are omitted (with a warning) on any arrow of length less than 1/1000 inch.


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

See Also

segments to draw segments.


x <- runif(12); y <- 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')

[Package graphics version 2.1.0 Index]