我想製作一些英倫三島地圖,並遇到了一個非常奇怪的內存問題。我的工作流程利用ggplot的圖層將新的細節添加到底圖上。ggplot地圖奇怪的內存問題
底圖本身需要用於從GADM英國和愛爾蘭形狀文件,簡化了在MapTools使用thinnedSpatialPoly
幾何形狀,導致在此映射:
然後,對於後續層,我做同樣的事情:在SHP文件加載,簡化的幾何形狀和它添加到底圖,如:
# new_data is a SpatialPolygonsDataFrame
base_map + geom(data=new_data, color="black", fill=my_fill)
對於大多數地圖,我使這個作品很好。然而,當我嘗試添加一個特定層,R凍結並最終使我有以下錯誤:
Error: cannot allocate vector of size 86.9 Mb
In addition: Warning messages:
1: In data.frame(x = x, y = y, aes_df) :
Reached total allocation of 3953Mb: see help(memory.size)
2: In data.frame(x = x, y = y, aes_df) :
Reached total allocation of 3953Mb: see help(memory.size)
3: In as.data.frame.numeric(x[[i]], optional = TRUE) :
Reached total allocation of 3953Mb: see help(memory.size)
4: In as.data.frame.numeric(x[[i]], optional = TRUE) :
Reached total allocation of 3953Mb: see help(memory.size)
5: In as.data.frame.numeric(x[[i]], optional = TRUE) :
Reached total allocation of 3953Mb: see help(memory.size)
6: In as.data.frame.numeric(x[[i]], optional = TRUE) :
Reached total allocation of 3953Mb: see help(memory.size)
生成此圖中的代碼是完全一樣的上方。如果我自己繪製新圖層,例如
ggplot(new_data, aes(x=long, y=lat, group=group)) + geom_polygon
然後沒有問題,地圖繪製得非常快。爲了在磁盤上參考,形狀文件是769 KB,而其他層是248 KB。
我在這裏如何調試和解決這個問題。任何指針都會很棒 - 謝謝!
您可以加入用於生成英國的底圖的代碼? – KatyB