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.
smooth.hexbin(bin, wts=c(48,4,1))
| bin | object of class  | 
| wts | numeric vector of length 3 for relative weights of the center, the six neighbor cells, and twelve second neighbors. | 
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.
an object of class "smoothbin", extending class
"hexbin", see hexbin.
The object includes the additional slot wts.
see grid.hexagons and hexbin.
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)
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.