R ggplot-Can';不要分配大向量
我试图绘制一个相对较小的数据集,但我无法让它显示该图。它不断给出错误R ggplot-Can';不要分配大向量,r,ggplot2,out-of-memory,geom-raster,R,Ggplot2,Out Of Memory,Geom Raster,我试图绘制一个相对较小的数据集,但我无法让它显示该图。它不断给出错误错误:无法分配大小为9.7GB的向量。这对我来说没有多大意义,因为数据集非常小 > nrow(locs) [1] 130 > head(locs) STATION AVGTRANGE LAT LONG 1: USC00286979 22.13333 40.6971 -75.2042 2: USC00360022 21.33333 40.5361 -79.8152 3: USC0036
错误:无法分配大小为9.7GB的向量。这对我来说没有多大意义,因为数据集非常小
> nrow(locs)
[1] 130
> head(locs)
STATION AVGTRANGE LAT LONG
1: USC00286979 22.13333 40.6971 -75.2042
2: USC00360022 21.33333 40.5361 -79.8152
3: USC00360132 24.37037 40.5227 -78.3694
4: USC00360140 19.80000 40.4949 -78.4667
5: USC00360147 22.36667 41.3585 -77.9262
6: USC00360457 20.68000 40.8209 -76.4983
我是怎么策划的
gg <- ggplot(data = locs, aes(x = LONG, y = LAT)) +
geom_raster(aes(fill=AVGTRANGE), interpolate=TRUE)
gg # can't allocate here
我不确定您使用geom_光栅想要实现什么,因为您的数据似乎不符合目的
考虑点图的输出:
gg <- ggplot(data = locs, aes(x = LONG, y = LAT, colour = AVGTRANGE)) +
geom_point()
#geom_raster(aes(fill=AVGTRANGE), interpolate=TRUE)
gg
data(faithfuld)
gg <- ggplot(faithfuld, aes(waiting, eruptions, colour = density)) +
geom_point()
#geom_raster(aes(fill = density), interpolate = TRUE)
gg
更新
我已经检查了geom_光栅的代码,它试图创建巨型图的原因是,图的分辨率基于点之间的最小距离。由于数据中的一些点彼此非常接近,所以矩阵的大小非常大
如果你用循环LAT和长到2位代码工作
locs$LAT <- round(locs$LAT, 0)
locs$LONG <- round(locs$LONG, 0)
locs$LAT你能用dput
而不是head
@Bulat来提供你的数据吗添加你的数据请求。除了我的回答之外,我认为这种行为是一个错误。我想在这里提出一个错误:我试图创建一个梯度热图,在这里东西被着色以显示2个点之间的变化。@HSchmale,更好的解决方案是使用克里格法从你的点生成一个均匀分布的光栅,然后将其传递给ggplot。
gg <- ggplot(data = locs, aes(x = LONG, y = LAT, z = AVGTRANGE)) +
geom_contour()
gg
locs$LAT <- round(locs$LAT, 0)
locs$LONG <- round(locs$LONG, 0)