ggplot2 geom_density2d具有数百万个观测值

时间:2018-08-20 17:27:43

标签: r ggplot2

我有一个数据框,其中的x和y坐标点的观测值为1e7。显然,使用geom_point可以看到很多东西,因此我尝试使用geom_density_2d。但这会出错:

Warning messages:
1: Computation failed in `stat_density2d()`:
cannot allocate vector of size 2.6 Gb 
2: Computation failed in `stat_density2d()`:
cannot allocate vector of size 2.6 Gb 

我有什么选择?我可以对重叠的点进行分组并对其进行计数,从而得到大约1e5个观测值的数据框,但是随后我丢失了很多密度信息(我无法找到一种方法来识别每个点的计数重叠点)。

如何在这种大小的数据帧上使用geom_density2d

编辑:我正在尝试避免使用十六进制和bin_2d几何形状。

1 个答案:

答案 0 :(得分:1)

您可以使用六角形装仓:

e <- runif(n = 10000000, -10, 10)
x <- rnorm(n = 10000000, 0, 10)
y <- 1+0.2*x+e
dat <- data.frame(y,x)
ggplot(dat,aes(x=x,y=y)) + stat_binhex()

enter image description here

或平滑的图:

smoothScatter(x=dat$x,y=dat$y)

enter image description here