grid.arrows {grid}R Documentation

Draw Arrows

Description

This will draw arrows at either end of a line or an existing line.to, lines, or segments grob.

Usage

grid.arrows(x = c(0.25, 0.75), y = 0.5, default.units = "npc",
            grob = NULL,
            angle = 30, length = unit(0.25, "inches"),
            ends = "last", type = "open",
            gp = gpar(), draw = TRUE, vp = NULL)

Arguments

x A numeric vector or unit object specifying x-values.
y A numeric vector or unit object specifying y-values.
default.units A string indicating the default units to use if x or y are only given as numeric vectors.
grob A grob to add arrows to; currently can only be a line.to, lines, or segments grob.
angle A numeric specifying (half) the width of the arrow head (in degrees).
length A unit object specifying the length of the arrow head.
ends One of "first", "last", or "both", indicating which end of the line to add arrow heads.
type Either "open" or "closed" to indicate the type of arrow head.
gp An object of class gpar, typically the output from a call to the function gpar. This is basically a list of graphical parameter settings.
draw A logical value indicating whether graphics output should be produced.
vp A Grid viewport object (or NULL).

Details

If the grob argument is specified, this overrides any x and/or y arguments.

Value

An object of class "grob".

Author(s)

Paul Murrell

See Also

Grid, viewport, grid.line.to, grid.lines, grid.segments

Examples

push.viewport(viewport(layout=grid.layout(2, 4)))
push.viewport(viewport(layout.pos.col=1,
                       layout.pos.row=1))
grid.rect(gp=gpar(col="grey"))
grid.arrows()
pop.viewport()
push.viewport(viewport(layout.pos.col=2,
                       layout.pos.row=1))
grid.rect(gp=gpar(col="grey"))
grid.arrows(angle=15, type="closed")
pop.viewport()
push.viewport(viewport(layout.pos.col=3,
                       layout.pos.row=1))
grid.rect(gp=gpar(col="grey"))
grid.arrows(angle=5, length=unit(0.1, "npc"),
            type="closed", gp=gpar(fill="white"))
pop.viewport()
push.viewport(viewport(layout.pos.col=4,
                       layout.pos.row=1))
grid.rect(gp=gpar(col="grey"))
grid.arrows(x=unit(0:80/100, "npc"),
            y=unit(1 - (0:80/100)^2, "npc"))
pop.viewport()
push.viewport(viewport(layout.pos.col=1,
                       layout.pos.row=2))
grid.rect(gp=gpar(col="grey"))
grid.arrows(ends="both")
pop.viewport()
push.viewport(viewport(layout.pos.col=2,
                       layout.pos.row=2))
grid.rect(gp=gpar(col="grey"))
# Recycling arguments
grid.arrows(x=unit(1:10/11, "npc"), y=unit(1:3/4, "npc"))
pop.viewport()
push.viewport(viewport(layout.pos.col=3,
                       layout.pos.row=2))
grid.rect(gp=gpar(col="grey"))
gs <- grid.segments(x0=unit(1:4/5, "npc"),
                    x1=unit(1:4/5, "npc"))
grid.arrows(grob=gs, length=unit(0.1, "npc"),
            type="closed", gp=gpar(fill="white"))
pop.viewport()
push.viewport(viewport(layout.pos.col=4,
                       layout.pos.row=2))
grid.rect(gp=gpar(col="grey"))
gl <- grid.lines(x=unit(0:80/100, "npc"),
                 y=unit((0:80/100)^2, "npc"))
grid.arrows(grob=gl, angle=15, type="closed", gp=gpar(fill="black"))
pop.viewport()
push.viewport(viewport(layout.pos.col=1,
                       layout.pos.row=2))
grid.move.to(x=0.5, y=0.8)
pop.viewport()
push.viewport(viewport(layout.pos.col=4,
                       layout.pos.row=1))
glt <- grid.line.to(x=0.5, y=0.2, gp=gpar(lwd=3))
grid.arrows(grob=glt, ends="first", gp=gpar(lwd=3))
pop.viewport(2)
grid.edit(gl, y=unit((0:80/100)^3, "npc"))

[Package Contents]