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

为何用于生成地图的R代码无法运行完成?

解决R绘制地图长时间无响应的方案

先排查数据加载环节

  • 单独运行st_read代码,验证数据能否正常加载。加载完成后用dim(eng_reg_map)或head(eng_reg_map)查看数据规模:
    eng_reg_map <- st_read("data/Regions_(December_2017)_Boundaries/Regions_(December_2017)_Boundaries.shp")
    dim(eng_reg_map)
    
  • 如果加载环节就卡顿,按以下方向排查:
    • 确认 shp 配套的.dbf、.shx、.prj等文件是否都在同一文件夹,缺失附属文件会导致加载异常
    • 开启st_read的日志输出,定位卡壳原因:
      eng_reg_map <- st_read("data/Regions_(December_2017)_Boundaries/Regions_(December_2017)_Boundaries.shp", quiet = FALSE)
      
    • 若数据边界过于精细,用st_simplify简化几何图形,降低计算量:
      eng_reg_map_simplified <- st_simplify(eng_reg_map, dTolerance = 100) # dTolerance单位为米,可按需调整
      

排查绘图环节

  • 若数据加载正常,先通过基础绘图验证几何数据有效性:
    plot(st_geometry(eng_reg_map))
    
    如果基础绘图也卡顿,说明几何数据本身存在问题,优先执行数据简化操作
  • 简化ggplot代码,先绘制最基础的轮廓,再逐步添加参数:
    eng_reg_map |>
      ggplot() +
      geom_sf() +
      theme_void()
    
  • 检查并修复无效几何图形:
    invalid_rows <- which(!st_is_valid(eng_reg_map))
    if(length(invalid_rows) > 0){
      eng_reg_map <- st_make_valid(eng_reg_map)
    }
    

环境与依赖排查

  • 更新sf和ggplot2到最新版本,避免旧版本兼容性问题:
    update.packages(c("sf", "ggplot2"))
    
  • 查看系统内存占用,若内存被占满会导致程序假死,可关闭其他占用内存的程序,或换内存更大的设备处理

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 05:35:18