
adds one or more arrows to a plot; arrowhead shape is either curved, a triangle, a circle or simple
Arrows(x0, y0, x1, y1, code = 2, arr.length = 0.4,
arr.width = arr.length/2, arr.adj = 0.5, arr.type = "curved",
segment = TRUE, col = "black", lcol = col, lty = 1, arr.col = lcol,
lwd = 1, arr.lwd = lwd, ...)
x-coordinates of points *from* which to draw arrows; either one value or a vector.
y-coordinates of points *from* which to draw arrows; either one value or a vector.
x-coordinates of points *to* which to draw arrows; either one value or a vector.
y-coordinates of points *to* which to draw arrows; either one value or a vector.
integer code determining kind of arrows to draw.
approximate length of arrowhead, in cm; either one value or a vector.
approximate width of arrowhead, in cm; either one value or a vector.
0,0.5,1 specifying the adjustment of the arrowhead.
type of arrowhead to draw, one of "none", "simple", "curved", "triangle", "circle", "ellipse" or "T".
logical specifying whether or not to draw line segments.
general line color specification; one value or a vector.
line color specifications; either one value or a vector.
ignored when arr.type = "simple"
or "T"
- use "col"
line type specifications; either one value or a vector.
color of arrowhead; either one value or a vector.
general line width specification. The default value changed to 1 from version 1.4 (was 2)
line width of arrowhead.
arguments passed to lines, segments or Arrowhead function.
Karline Soetaert <karline.soetaert@nioz.nl>
x0
, y0
, x1
, y1
, arr.length
,
arr.width
, arr.adj
, lcol
, lty
and
arr.col
can be a vector, of the same length.
For each 'i', an arrow is drawn between the point '(x0[i], y0[i])' and the point '(x1[i],y1[i])'.
If code
=1 an arrowhead is drawn at '(x0[i],y0[i])'
if code
=2 an arrowhead is drawn at '(x1[i],y1[i])'.
If code
=3 an arrowhead is drawn at both ends of the arrow
unless arr.length
= 0, when no head is drawn.
If arr.adj
= 0.5 then the centre of the arrowhead is at
the point at which it is drawn.
arr.adj
= 1 causes the tip of the arrowhead to touch
the point.
arr.adj
= 2 causes the base of the arrowhead to touch
the point.
The type of the arrowhead is set with arr.type
which can take
the values:
"simple" : uses comparable R function arrows
"triangle": uses filled triangle
"curved" : draws arrowhead with curved edges
"circle" : draws circular head
"ellipse" : draws ellepsoid head
"T" : draws T-shaped (blunt) head
arrows
the comparable R function
Arrowhead
xlim <- c(-5 , 5)
ylim <- c(-10, 10)
plot(0, type = "n", xlim = xlim, ylim = ylim,
main = "Arrows, type = 'curved'")
x0 <- runif(100, xlim[1], xlim[2])
y0 <- runif(100, ylim[1], ylim[2])
x1 <- x0+runif(100, -1, 1)
y1 <- y0+runif(100, -1, 1)
Arrows(x0, y0, x1, y1, arr.length = runif(100), code = 2,
arr.type = "curved", arr.col = 1:100, lcol = 1:100)
plot(0, type = "n", xlim = xlim, ylim = ylim,
main = "Arrows, type = 'circle'")
x0 <- runif(100, xlim[1], xlim[2])
y0 <- runif(100, ylim[1], ylim[2])
x1 <- x0 + runif(100, -1, 1)
y1 <- y0 + runif(100, -1, 1)
Arrows(x0, y0, x1, y1, arr.length = 0.2, code = 3,
arr.type = "circle", arr.col = "grey")
plot(0, type = "n", xlim = xlim, ylim = ylim,
main = "Arrows, type = 'ellipse'")
Arrows(x0, y0, x1, y1, arr.length = 0.2, arr.width = 0.5,
code = 3, arr.type = "ellipse", arr.col = "grey")
curve(expr = sin(x), 0, 2*pi+0.25, main = "Arrows")
x <- seq(0, 2*pi, length.out = 10)
xd <- x + 0.025
Arrows(x, sin(x), xd, sin(xd), type = "triangle",
arr.length = 0.5, segment = FALSE)
xx <- seq(0, 10*pi, length.out = 1000)
plot(sin(xx)*xx, cos(xx)*xx, type = "l", axes = FALSE,
xlab = "", ylab = "", main = "Arrows, type = 'curved'")
x <- seq(0, 10*pi, length.out = 20)
x1 <- sin(x)*x
y1 <- cos(x)*x
xd <- x+0.01
x2 <- sin(xd)*xd
y2 <- cos(xd)*xd
Arrows(x1, y1, x2, y2, arr.type = "curved", arr.length = 0.4,
segment = FALSE, code = 1, arr.adj = 0.5 )
plot(sin(xx)*xx, cos(xx)*xx, type = "l", axes = FALSE,
xlab = "", ylab = "", main = "Arrows, type = 'T'")
Arrows(x1, y1, x2, y2, arr.type = "T", arr.length = 0.4,
code = 1, arr.lwd = 2)
# arguments passed to polygon:
xlim <- c(-5 , 5)
ylim <- c(-10, 10)
plot(0, type = "n", xlim = xlim, ylim = ylim,
main = "Arrows, type = 'curved'")
x0 <- runif(100, xlim[1]-1, xlim[2]+0.5) # exceeds the x-range
y0 <- runif(100, ylim[1], ylim[2])
x1 <- x0+runif(100, -1, 1)
y1 <- y0+runif(100, -1, 1)
Arrows(x0, y0, x1, y1, arr.length = runif(100), code = 2,
arr.type = "curved", arr.col = 1:100, lcol = 1:100, xpd = TRUE)
Run the code above in your browser using DataLab