10

在下面的数据集中,thing1 是数字,thing2 是一个因子(但在其他方面与 thing1 相同)。为简单起见,summary 函数只是 bin 中的最大值。当 z 元素是一个因子时,六边形重叠。有谁知道为什么?

library(ggplot2)
library(hexbin)
DF=data.frame(xpos=rnorm(1000),
              ypos=rnorm(1000),
              thing1=rep(1:9,length.out=100),
              thing2=as.factor(rep(1:9,length.out=100)))
ggplot(DF, aes(x=xpos, y=ypos, z=thing1)) +  
  stat_summary_hex(fun=function(x){x[which.max(x)]})
ggplot(DF, aes(x=xpos, y=ypos, z=thing2)) +  
  stat_summary_hex(fun=function(x){x[which.max(x)]})

东西1 东西2

4

1 回答 1

0

据我所知,R to hexbin 中有两个函数:分别在 fMultivar 和 ggplot2 包中的 hexBinning 和 geom_hex。并且两者都根据样本中最左下角的坐标对六边形的中心进行参数化。

这意味着如果您拆分样本(根据一个因素,或者在我的情况下,在 mapreduce 工作中),您的六边形会变得古怪。

所以我实现了我自己的 hexbin 函数,它假设 (0,0) 作为网格的中心(即,如果 (0,0) 周围有点,则相应的六边形将在那里居中)并且只需要 r(半径六边形)作为参数。

实现在这里(对不起,文本是西班牙语!)。此外,我的实现没有显式循环:它是完全矢量化的。

于 2013-12-08T22:06:55.087 回答