2015-10-20 121 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