Learn R Programming

grid (version 3.0.3)

grid.arrows: Draw Arrows

Description

Functions to create and draw arrows at either end of a line, or at either end of a line.to, lines, or segments grob.

These functions have been deprecated in favour of arrow arguments to the line-related primitives.

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", name = NULL, gp = gpar(), draw = TRUE, vp = NULL)
arrowsGrob(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", name = NULL, gp = gpar(), 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.
name
A character identifier.
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).

Value

An arrows grob. grid.arrows() returns the value invisibly.

Details

Both functions create an arrows grob (a graphical object describing arrows), but only grid.arrows() draws the arrows (and then only if draw is TRUE).

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

See Also

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

Examples

Run this code
## Not run: ## to avoid lots of deprecation warnings
# pushViewport(viewport(layout=grid.layout(2, 4)))
# pushViewport(viewport(layout.pos.col=1,
#                        layout.pos.row=1))
# grid.rect(gp=gpar(col="grey"))
# grid.arrows()
# popViewport()
# pushViewport(viewport(layout.pos.col=2,
#                        layout.pos.row=1))
# grid.rect(gp=gpar(col="grey"))
# grid.arrows(angle=15, type="closed")
# popViewport()
# pushViewport(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"))
# popViewport()
# pushViewport(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"))
# popViewport()
# pushViewport(viewport(layout.pos.col=1,
#                        layout.pos.row=2))
# grid.rect(gp=gpar(col="grey"))
# grid.arrows(ends="both")
# popViewport()
# pushViewport(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"))
# popViewport()
# pushViewport(viewport(layout.pos.col=3,
#                        layout.pos.row=2))
# grid.rect(gp=gpar(col="grey"))
# # Drawing arrows on a segments grob
# gs <- segmentsGrob(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"))
# popViewport()
# pushViewport(viewport(layout.pos.col=4,
#                        layout.pos.row=2))
# grid.rect(gp=gpar(col="grey"))
# # Arrows on a lines grob
# # Name these because going to grid.edit them later
# gl <- linesGrob(name="curve", x=unit(0:80/100, "npc"),
#                 y=unit((0:80/100)^2, "npc"))
# grid.arrows(name="arrowOnLine", grob=gl, angle=15, type="closed",
#             gp=gpar(fill="black"))
# popViewport()
# pushViewport(viewport(layout.pos.col=1,
#                        layout.pos.row=2))
# grid.move.to(x=0.5, y=0.8)
# popViewport()
# pushViewport(viewport(layout.pos.col=4,
#                        layout.pos.row=1))
# # Arrows on a line.to grob
# glt <- lineToGrob(x=0.5, y=0.2, gp=gpar(lwd=3))
# grid.arrows(grob=glt, ends="first", gp=gpar(lwd=3))
# popViewport(2)
# grid.edit(gPath("arrowOnLine", "curve"), y=unit((0:80/100)^3, "npc"))
# ## End(Not run)

Run the code above in your browser using DataLab