diagram (version 1.6.5)

selfarrow: adds a circular, self-pointing arrow to a plot

Description

adds a circular arrow, from and to the same point

Usage

selfarrow(pos, lwd = 2, lty = 1, lcol = "black", arr.pos = 0.5, 
          path = "L", curve = c(0.1, 0.1), dr = 0.01, code = 1, ...)

Arguments

pos

2-valued vector with coordinates (x,y) of points *from and to* which to draw arrow.

lwd

line width.

lty

line type.

lcol

line color.

arr.pos

relative position of arrowhead.

path

position of circle: R, L, U, D for right, left, up and down respectively.

curve

relative size of curve (fraction of arrow length).

dr

size of segments, in radians, to draw ellipse (decrease for smoother).

code

how to put the arrowhead.

...

arguments passed to function Arrows.

Value

coordinates (x,y) where arrowhead is drawn

Details

draws a circular arrow from and to one point

The position of the arrowhead on the circle is set with arr.pos, a value between 0 (at start) and 1(at end of circle)

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

  • "none" : skips the drawing of arrows.

  • "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.

The size of the arrow head can be specified with the arguments arr.length and arr.width.

See Arrowhead for details on arrow head.

See Also

straightarrow, segmentarrow, curvedarrow, bentarrow,treearrow, splitarrow,

arrows: the comparable R function,

Arrows: more complicated arrow function from package shape.

Examples

Run this code
# NOT RUN {
openplotmat(main = "selfarrow")

pos <- coordinates(3, mx = 0.05)

text(pos, LETTERS[1:3], cex = 2)

for (i in 1:3) 
  selfarrow(pos = pos[i, ], path = "R", arr.pos = 0.2,
            curve = c(0.05, 0.1), lcol = "darkred")

for (i in 1:3) 
  selfarrow(pos = pos[i, ], path = "L", arr.pos = 0.7,
            lcol = "darkblue", curve = c(0.05, 0.05))

for (i in 1:3) 
  selfarrow(pos = pos[i, ], path = "L", arr.pos = 0.5,
            lcol = "darkgreen", code = i, arr.type = "triangle")
# }

Run the code above in your browser using DataCamp Workspace