为了找到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中。 (我的最终目标是获取给定箱中的数据,取所述数据中第三列和第四列的平均值,并使用注释将所述平均值叠加在六边形密度直方图上)。我从昨天早上起就开始研究这个问题但没有结果。 :(
有什么想法吗?
答案 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
)
三个“错位的”O
实际上并没有放错地方。由于某种原因,未绘制基础图块。它在“新”ggplot2中做了同样的事情(我试过了)。这可能值得在github上提交一个问题。