You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

choroplethr包与ggplot2绘制分级地图渲染效果差异问题

修复方案

  • 优先使用sf空间对象直接绘图(推荐)
    ggplot2已原生支持sf格式空间数据,无需手动将shapefile拆解为带long、lat字段的长表,可完全避免点顺序、group分组错误导致的连线异常,修改后代码如下:
    library(sf)
    fig <- ggplot(data = merge.shp) +
      geom_sf(aes(fill = sqm_cat), na.rm = FALSE) +
      scale_fill_brewer("", drop = FALSE, na.value = "black") +
      theme_void() +
      ggtitle("People per square kilometers") +
      coord_sf()
    
  • 若必须使用long/lat格式的长表绘图,先完成两步校验
    1. 绘图前对数据按group和顺序字段排序:shapefile转为长表时默认携带order字段,标记每个多边形内坐标点的绘制顺序,merge、filter操作会打乱该顺序,提前排序即可修复连线错乱问题:
    merge.shp <- merge.shp %>% arrange(group, order)
    
    1. 校验group字段取值:确保同一个多边形的所有坐标点归属同一个group值,不同多边形的group值不重复,避免跨区域连点。
  • 特殊场景适配:如果绘制的区域包含带洞的多边形,确保洞的坐标点顺序和外轮廓的旋转方向相反(外轮廓顺时针、洞逆时针即可匹配你设置的evenodd填充规则)。

内容的提问来源于stack exchange,提问作者umrpedrod

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 04:27:03