# 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

1 center cell, | weight = wts[1] |

6 immediate neighbors | weight = wts[2] |

12 second neighbors | weight =wts[3] |

If a cell, its immediate and second neighbors all have a value of
`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

`library(hexbin)`

```
# NOT RUN {
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.27.1, License: GPL-2*