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

ggspatial::geom_spatial_path()绘图异常,speed_limit图多出一条线

问题原因与解决方案

你的问题出在分组逻辑上:使用geom_spatial_path时,若仅映射连续型变量(如speed_limit)作为颜色,ggplot会自动调整分组规则,导致不同LINESTRING的顶点被错误连接,产生额外的线。而road_name是离散型变量,每个值对应唯一的原始线,分组逻辑自然正确。

具体解决步骤

在geom_spatial_path的aes中显式指定group = feature,强制按原始LINESTRING的特征分组,确保每条线独立绘制:

修改后的p2代码:

p2 <- ggplot2::ggplot(sp_df, aes(x,y)) +
  ggspatial::geom_spatial_path(aes(color = speed_limit, group = feature)) +
  ggspatial::coord_sf(crs = 4326) +
  xlab("lon") +
  ylab("lat") +
  ggtitle("speed_limit")

补充说明

ggspatial::df_spatial()会为每个原始LINESTRING生成唯一的feature列,用来标识哪些顶点属于同一条线。当映射连续型变量作为颜色时,ggplot默认的分组逻辑会忽略这个feature标识,转而尝试按颜色变量聚合,从而引发错误连接。显式指定group = feature就能强制恢复正确的分组方式,和基础plot()的逻辑保持一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 14:10:26