【问题标题】:Different rendering between chloroplethr package and ggplot2chloroplethr 包和 ggplot2 之间的不同渲染
【发布时间】:2021-12-07 18:53:14
【问题描述】:

我遇到了一个可视化问题,我无法理解。从一些包含位置信息的数据中,我想创建一张地图。我发现了很棒的 choroplethr 包,这是一个很好的起点,它确实帮助我了解如何处理数据以获得有意义的结果。这是我想要的地图:

但是当我尝试复制这些步骤时(参见使用chlorplethr 包的self$render 使用ggplot2),我得到以下结果:

有人知道我的参数哪里出错/缺少什么吗?代码如下:

fig <- ggplot(data=merge.shp, aes(x = long, y = lat, group = group)) +
    geom_polygon(aes(fill = sqm_cat), na.rm=FALSE, rule="evenodd", position="identity") +
    coord_equal() +
    scale_fill_brewer("", drop = FALSE, na.value = "black") + 
    ggplot2::theme_void() +
    ggtitle("People per square kilometers")

编辑:我想,我发现了问题。如果我只为一个区域绘制地图

merge.shp %>% filter(plz %in% c("645")) 
        %>% ggplot(aes(x=long, y=lat, group=group)) + geom_path

我得到以下结果:

所以一切都可能与坐标的“错误”连接有关。如果我将geom_path 替换为geom_point,则有一些合理的轮廓。但是如何将其翻译到地图上呢?

【问题讨论】:

  • 我目前无法测试,但请尝试使用coord_map() 而不是coord_equal()
  • 感谢您的建议,但没有奏效。我已经用新的方面编辑了这个问题

标签: r ggplot2 visualization geospatial choropleth


【解决方案1】:

解决方案其实很简单。该顺序对于geom_polygon 至关重要,我错误地假设我的数据框merge.shp 对于所有因素都按升序排列,但事实并非如此。介绍

merge.shp = merge.shp[order(merge.shp$order), ]

成功了。

【讨论】:

    猜你喜欢
    • 2019-04-01
    • 2021-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-12
    • 2011-06-30
    • 1970-01-01
    相关资源
    最近更新 更多