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

R语言geofacet包自定义网格正整数值报错问题排查

解决geofacet包grid_preview报错及分面间距过大问题

报错原因分析

调用grid_preview(poly_grid)时出现如下错误:

Error: A custom grid must have positive integer-valued 'col' values

问题出在你的poly_grid数据中存在值为0的col和row,geofacet要求自定义网格的col和row必须是大于0的正整数。查看数据可发现:

  • col列第7个元素值为0
  • row列第29个元素值为0

修复报错的操作

把所有0值替换为正整数(比如1,需保证整体坐标逻辑合理),代码示例:

# 复制原数据避免修改原始对象
poly_grid_fixed <- poly_grid
# 替换col中的0为1
poly_grid_fixed$col[poly_grid_fixed$col == 0] <- 1
# 替换row中的0为1
poly_grid_fixed$row[poly_grid_fixed$row == 0] <- 1

# 重新预览网格
grid_preview(poly_grid_fixed)

解决分面间距过大的方案

使用真实地理坐标时无报错但间距过大,是因为原始坐标数值范围太大。可以将坐标归一化映射到紧凑的正整数网格,示例代码:

# 基于真实坐标生成紧凑网格
poly_grid_compact <- poly_grid_coord
# 将col缩放到1-30的正整数区间,可根据需求调整区间范围
poly_grid_compact$col <- as.integer(scale(poly_grid_compact$col, center = min(poly_grid_compact$col), scale = max(poly_grid_compact$col)/29) + 1)
# 将row缩放到1-30的正整数区间
poly_grid_compact$row <- as.integer(scale(poly_grid_compact$row, center = min(poly_grid_compact$row), scale = max(poly_grid_compact$row)/29) + 1)

# 预览紧凑后的网格
grid_preview(poly_grid_compact)

注:代码中29对应1-30的区间范围(30-1=29),若想调整为1-25的区间,只需将29替换为24即可。


内容的提问来源于stack exchange,提问作者C. Guff

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 21:35:13