我正在使用 R 创建具有如下几层的房屋的平面图,从底层开始:
basemap
:平面图的扫描版,我把它放在底层以帮助阅读bed
:房子有几十张床,分散在房子的不同房间里,根据住户的特点有不同的颜色piechart
:每张床上面都有一个饼图,饼图也是根据住户的其他特征创建的,有的床有饼图,有的没有。
bed
和piechart
是基于基于底图创建的shp文件创建的(即我使用Mapwindow创建矢量图层,将底图作为栅格图层导入并放在底部,然后一张一张地绘制床。床的shp文件然后将其导入R,计算床多边形的质心,该质心有助于定位饼图)
我read.jpeg
以前是导入basemap
toimagematrix
对象,然后用新annotation_raster
函数inggplot2 0.9
把basemap
最下面的地图图层,由于bed
图层也是基于图层创建的basemap
,图层完美bed
叠加在图层上。basemap
ggplot2
我可以毫无问题地创建地图 - 如果basemap
足够小(3000 x 3000
像素),现在我有一个basemap
像素8000+ x 3000+
(object.size
241823624 字节),我在创建 shp 文件时没有意识到 R 内存问题,ggplot
可以编译对象如果我annotation_raster
禁用了,但 R 一直说我可以在尝试将 xxxMB 包含basemap
到ggplot
对象中时分配内存。
我认为这与 jpg 文件的压缩无关,因为即使我进一步压缩 jpg 文件,尺寸也不会改变。但是我无法调整 jpg 文件的大小,因为我的bed
图层是根据原始 jpg 文件的尺寸创建的。
basemap
任何人都可以在不改变 jpeg 尺寸或其他一些技巧来处理 R 的内存限制的情况下帮助缩小图像矩阵的大小吗?谢谢。