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 fromhexbin()
orerode,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)
# }