【问题标题】:R - ggplot shapefile small features overlaped by bigger onesR - ggplot shapefile 小特征与大特征重叠
【发布时间】:2015-10-20 15:21:42
【问题描述】:

当我使用 ggplot2::ggplot() 使用 shapefile 创建地图时,我遇到了小特征与大特征重叠的问题。请注意image of the Problem: ggplot overlays the small county by the bigger one

请将此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 的绘图顺序?

任何帮助表示赞赏!谢谢!

【问题讨论】:

    标签: r ggplot2 spatial shapefile


    【解决方案1】:

    有几个选项:

    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'))
    

    我个人更喜欢选项 2,因为它是一个巨大的痛苦重新排序因素,并且很容易导致意想不到的后果。此外,您可以在顶部处理更多图层。请注意,过滤器函数需要 dplyr 库 (more on dplyr use)。

    【讨论】:

    • 感谢您的快速回复!对于此示例,这是一个简单直接的解决方案。但我正在寻找一个更通用的解决方案,因为我想绘制更复杂的多边形 shapefile(例如 NUTS3 级别)。我需要确保 ggplot 绘制多边形特征的方式是较小的特征不会被较大的特征隐藏。在 QGIS 中,不做任何更正也没问题,但不幸的是,在 R/ggplot 中似乎并非如此。
    • 是的,我可以看出你想要一个一般性的修复而不是一个杂乱无章的东西。您可以使填充透明,这样您总是可以看到每个,但您会在一定程度上失去对颜色的控制。 ggplot 可能不是绘制此类地图的最佳工具。您是否查看过CRAN task views 的其他选项?
    • 我找到了一个适合我的好解决方案here
    猜你喜欢
    • 1970-01-01
    • 2022-08-03
    • 1970-01-01
    • 2021-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-10
    • 1970-01-01
    相关资源
    最近更新 更多