# smooth.hexbin

##### Hexagon Bin Smoothing

Given a `"hexbin"`

(hexagon bin) object, compute a discrete
kernel smoother that covers seven cells, namely a center cell and its
six neighbors. With two iterations the kernel effectively covers
1+6+12=19 cells.

- Keywords
- misc

##### Usage

`smooth.hexbin(bin, wts=c(48,4,1))`

##### Arguments

- bin
- object of class
`"hexbin"`

, typically resulting from`hexbin()`

or`erode,hexbin-method`

. - wts
- numeric vector of length 3 for relative weights of the center, the six neighbor cells, and twelve second neighbors.

##### Details

This discrete kernel smoother uses the center cell, immediate
neighbors and second neighbors to smooth the counts. The counts for
each resulting cell is a linear combination of previous cell counts
and weights. The weights are
`max(cnt)`

, the new maximum count would be
`max(cnt)*sum(wts)`

. It is possible for the counts to overflow.

The domain for cells with positive counts increases. The hexbin
slots `xbins`

, `xbnds`

, `ybnds`

, and `dimen`

all
reflect this increase.
Note that usually `dimen[2] = xbins+1`

.

The intent was to provide a fast, iterated, immediate neighbor smoother. However, the current hexbin plotting routines only support shifting even numbered rows to the right. Future work can

(1) add a shift indicator to hexbin objects that indicates left or
right shifting.
(2) generalize plot.hexbin() and hexagons()
(3) provide an iterated kernel.
With `wts[3]=0`

, the smoother only uses the immediate neighbors.
With a shift indicator the domain could increase by 2 rows (one bottom
and on top) and 2 columns (one left and one right). However the current
implementation increases the domain by 4 rows and 4 columns, thus
reducing plotting resolution.

##### Value

- an object of class
`"smoothbin"`

, extending class`"hexbin"`

, see`hexbin`

. The object includes the additional slot`wts`

.

##### References

see `grid.hexagons`

and `hexbin`

.

##### See Also

`hexbin`

, `erode.hexbin`

, `hcell2xy`

, `gplot.hexbin`

, `hboxplot`

, `grid.hexagons`

, `grid.hexlegend`

.

##### Examples

```
x <- rnorm(10000)
y <- rnorm(10000)
bin <- hexbin(x,y)
# show the smooth counts in gray level
smbin <- smooth.hexbin(bin)
plot(smbin, main = "smooth.hexbin(.)")
# Compare the smooth and the origin
smbin1 <- smbin
smbin1@count <- as.integer(ceiling(smbin@count/sum(smbin@wts)))
plot(smbin1)
smbin2 <- smooth.hexbin(bin,wts=c(1,0,0)) # expand the domain for comparability
plot(smbin2)
```

*Documentation reproduced from package hexbin, version 1.26.3, License: GPL-2*