hexpolygon

0th

Percentile

Hexagon Coordinates and Polygon Drawing

Simple low-level function for computing and drawing hexagons. Can be used for grid (package grid) or traditional (package graphics) graphics.

Keywords
dplot, aplot
Usage
hexcoords(dx, dy = NULL, n = 1, sep = NULL)

hexpolygon(x, y, hexC = hexcoords(dx, dy, n = 1), dx, dy = NULL, fill = 1, border = 0, hUnit = "native", ...)

Arguments
dx,dy
horizontal and vertical width of the hexagon(s).
n
number of hexagon repeats.
sep
separator value to be put between coordinates of different hexagons. The default, NULL doesn't use a separator.
x,y
numeric vectors of the same length specifying the hexagon centers around which to draw.
hexC
a list as returned from hexcoords(). Its component no.sep determines if grid or traditional graphics are used. The default (via default of hexcoords) is now to use grid graphics.
fill,border
passed to grid.polygon (for grid).
hUnit
string or NULL determining in which units (x,y) values are.
...
further arguments passed to polygon (for graphics).
Value

  • hexcoords() returns a list with components
  • x,ynumeric vectors of length $n \times 6$ (or $n \times 7$ if sep is not NULL) specifying the hexagon polygon coordinates (with sep appended to each 6-tuple).
  • no.sepa logical indicating if sep was NULL.
  • hexpolygon returns what its last grid.polygon(.) or polygon(.) call returns.

See Also

grid.hexagons which builds on these.

Aliases
  • hexpolygon
  • hexcoords
Examples
str(hexcoords(1, sep = NA))  # multiple of (6 + 1)
str(hexcoords(1, sep = NULL))# no separator -> multiple of 6
stopifnot(3 * (6+1) == sapply(hexcoords(2, n = 3, sep = NA)[1:2], length),
          6 == sapply(hexcoords(1)[1:2], length))
set.seed(1001)

## hexpolygon()s:
x <- runif(20, -2, 2)
y <- x + rnorm(20)

## 1) traditional 'graphics'
plot(x,y, asp = 1, "plot() + hexpolygon()")
hexpolygon(x,y, dx = 0.1, density = 25, col = 2, lwd = 1.5)

## 2) "grid" :

addBit <- function(bnds, f = 0.05) bnds + c(-f, f) * diff(bnds)
sc <- addBit(rxy <- range(x,y))# same extents (cheating asp=1)
grid.newpage()
pushViewport(plotViewport(.1+c(4,4,2,1), xscale = sc, yscale = sc))
grid.rect()
grid.xaxis()
grid.yaxis()
grid.points(x,y)
hexpolygon(x,y, hexcoords(dx = 0.1, sep=NULL), border = "blue", fill=NA)
popViewport()
Documentation reproduced from package hexbin, version 1.26.3, License: GPL-2

Community examples

Looks like there are no examples yet.