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

在R中映射CSV格式波士顿犯罪数据绘图仅显示两个点如何解决

问题排查&修复方案
  • 第一步:优先检查坐标顺序是否写错
    st_as_sf的coords参数要求输入顺序为先经度、后纬度,你当前代码中写的c("Lat", "Long")是先纬度后经度,会导致坐标完全错位,绝大多数点落在地图可视范围外,看起来就只剩2个点。先调整参数顺序尝试:
points = st_as_sf(crimedata, coords = c("Long", "Lat"), crs = 4326)
plot(points$geometry, pch=16, col="navy")
  • 第二步:排查经纬度的无效值
    如果调整顺序后问题仍存在,检查经纬度的空值、异常值:波士顿的经纬度范围大致为北纬42.22°-42.4°,西经70.8°-71.2°(西经对应数值为负),先统计数据分布:
# 查看经纬度列的统计信息和数据类型
str(crimedata[,c("Lat","Long")])
summary(crimedata[,c("Lat","Long")])
# 统计正常范围内的记录数
valid_count = nrow(subset(crimedata, Lat > 42 & Lat <43 & Long < -70 & Long > -72))
cat("有效经纬度记录数:", valid_count, "总记录数:", nrow(crimedata), "\n")

公开的波士顿犯罪事件数据集普遍存在大量经纬度为空、填0的无效记录,这些记录转换为空间点后会被识别为无效值或者落在可视区域外。

  • 第三步:过滤无效值后绘图
    确认存在大量无效值后,过滤有效记录再绘制即可:
# 过滤符合波士顿范围的有效记录
valid_crime = subset(crimedata, Lat > 42.2 & Lat < 42.4 & Long < -70.8 & Long > -71.2)
# 注意坐标顺序为先经度后纬度
points = st_as_sf(valid_crime, coords = c("Long", "Lat"), crs = 4326)
plot(points$geometry, pch=16, col="navy")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 02:06:03