2015-10-20 119 views
1

當我使用ggplot2 :: ggplot()來創建一個使用shapefile的地圖我有小特徵被較大特徵覆蓋的問題。請注意0​​。R-ggplot shapefile被較大的特徵覆蓋的小特徵

請使用此shapefile作爲輸入數據。

load("~/Germany_Bremen_LowerSax_NUTS1.Rdata") # Please use input data mentioned above 
library(ggplot2) 

plot(shp.nuts.test) # normal plot with visible borders. 

shp.f <- fortify(shp.nuts.test) 

Map <- ggplot(shp.f, aes(long, lat, group = group, fill = id))+ 
    geom_polygon() 
Map 

有沒有可能改變ggplot中shapefile的圖形順序?

任何幫助表示讚賞!謝謝!

回答

2

有幾個選項:

  1. 重新排序因素使得下水平在較高者的上圖。
  2. 添加隱藏組的其他層上的情節(如下圖所示)
library(dplyr) 

ggplot(shp.f, aes(long, lat, group = group, fill = id))+ 
geom_polygon()+ 
geom_polygon(aes(long,lat), data=filter(shp.f, group=='4.1')) 

enter image description here

我個人比較喜歡選項2,因爲它是一個巨大的痛苦重新排序因素和很容易造成意想不到的後果。另外,您可以在頂部處理更多圖層。請注意,過濾器功能需要dplyr庫(​​)。

+0

謝謝您的快速回復!這是一個簡單而直接的解決方案。但是我正在尋找更通用的解決方案**,因爲我想繪製更復雜的多邊形shapefile(例如NUTS3級別)。我需要確保ggplot繪製多邊形特徵的方式是較小的特徵不會被較大的特徵隱藏。在QGIS中,沒有任何更正是沒有問題的,但不幸的是,這在R/ggplot中似乎不是這種情況。 – KalleBlomquist

+0

是的,我可以看到你想要一個普通的解決方案而不是一個kludge。你可以使填充透明,這樣你總能看到每一個,但是你會失去對顏色的控制。 ggplot可能不是繪製這種類型地圖的最佳工具。你有沒有看過[CRAN任務視圖](https://cran.r-project.org/web/views/Spatial.html)其他選項? – Minnow

+0

我發現了一個很好的解決方案,適用於我[這裏](http://stackoverflow.com/a/32186989/2725410)。 – KalleBlomquist