Arrows {shape}R Documentation

adds arrows with improved arrowhead to a plot

Description

adds one or more arrows to a plot; arrowhead shape is either curved, a triangle, a circle or simple

Usage

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, ...)

Arguments

x0

x-coordinates of points *from* which to draw arrows; either one value or a vector.

y0

y-coordinates of points *from* which to draw arrows; either one value or a vector.

x1

x-coordinates of points *to* which to draw arrows; either one value or a vector.

y1

y-coordinates of points *to* which to draw arrows; either one value or a vector.

code

integer code determining kind of arrows to draw.

arr.length

approximate length of arrowhead, in cm; either one value or a vector.

arr.width

approximate width of arrowhead, in cm; either one value or a vector.

arr.adj

0,0.5,1 specifying the adjustment of the arrowhead.

arr.type

type of arrowhead to draw, one of "none", "simple", "curved", "triangle", "circle", "ellipse" or "T".

segment

logical specifying whether or not to draw line segments.

col

general line color specification; one value or a vector.

lcol

line color specifications; either one value or a vector. ignored when arr.type = "simple" or "T" - use "col"

lty

line type specifications; either one value or a vector.

arr.col

color of arrowhead; either one value or a vector.

lwd

general line width specification. The default value changed to 1 from version 1.4 (was 2)

arr.lwd

line width of arrowhead.

...

arguments passed to lines, segments or Arrowhead function.

Details

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])'.

The type of the arrowhead is set with arr.type which can take the values:

Author(s)

Karline Soetaert <karline.soetaert@nioz.nl>

See Also

arrows the comparable R function

Arrowhead

Examples

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)



[Package shape version 1.4.6.1 Index]