获取内容和中心gg2plot stat_hexbin直方图

时间:2015-10-21 11:17:33

标签: r histogram

为了找到bin中心,我尝试了gg2plot_build(),但它提供的中心坐标不是绘制的。在下面的例子中,有几个错位的“o”符号和一些没有符号的箱子。

library(ggplot2)
dat <- data.frame(x = rnorm(100000, 6, 2), y = rnorm(100000, 6, 2))
hexHist = ggplot(dat, aes(x, y)) + stat_binhex(bins=15);
hexDat = ggplot_build(hexHist)$data[[1]]
hexHistFinal = hexHist + annotate("text", hexDat$x, hexDat$y, label="o")
hexHistFinal

我还给了hexbin::hcell2xy(hexbin(dat$x, dat$y, 15))一个镜头,但是距离绘制的内容还要远。

我不知道如何确定哪些数据在哪个bin中。 (我的最终目标是获取给定箱中的数据,取所述数据中第三列和第四列的平均值,并使用注释将所述平均值叠加在六边形密度直方图上)。我从昨天早上起就开始研究这个问题但没有结果。 :(

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

这可能是ggplot2中的错误。添加文本注释后,实际上会丢失切片(我使用geom_text,但annotate也会发生相同的事情):

library(gridExtra)
library(ggplot2)

set.seed(1492) # always do this when generating random data so the result is reproducible
dat <- data.frame(x = rnorm(100000, 6, 2), y = rnorm(100000, 6, 2))
hexHist = ggplot(dat, aes(x, y)) + stat_binhex(bins=15);
hexDat = ggplot_build(hexHist)$data[[1]]

grid.arrange(
  hexHist,
  hexHist + geom_text(data=hexDat, aes(x=x, y=y), label="O"),
  ncol=2
)

enter image description here

三个“错位的”O实际上并没有放错地方。由于某种原因,未绘制基础图块。它在“新”ggplot2中做了同样的事情(我试过了)。这可能值得在github上提交一个问题。