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

如何在R中从USAboundaries提取新墨西哥州边界并优化Tmap绘图

解决Tmap绘制土壤采样点显示在地图角落的问题

要让土壤采样点正确显示在新墨西哥州地图上,核心是获取新墨西哥州的边界数据并将其作为底图,让地图自动聚焦到该州范围。以下是修正后的代码及说明:

关键修改点

  • 使用USAboundaries包提取新墨西哥州的边界数据
  • 将州地图作为底图,确保采样点处于地图中心区域
  • 保持坐标系统统一(CRS 4326)

修正后的R代码

library(tmap) 
library(maps)
library(sf)
library(USAboundaries)

# 读取土壤采样点数据
data <- read.csv("SoilPit_Locations___.csv")
# 转换为sf空间对象,指定WGS84坐标系统(CRS 4326)
points <- st_as_sf(data, coords = c("Longitude", "Latitude"), crs = 4326)

# 获取美国各州边界并筛选出新墨西哥州(New Mexico,缩写NM)
nm_state <- us_states() %>% filter(state_abbr == "NM")

# 设置绘图模式与样式
tmap_mode("plot")
tmap_style("natural")

# 绘制新墨西哥州底图 + 采样点
m <- tm_shape(nm_state) + 
  tm_polygons(fill = "lightgreen", border = "black", lwd = 0.5) +  # 州填充与边框
  tm_shape(points) + 
  tm_dots(col = "red", size = 0.5)  # 采样点样式

# 显示地图
m
# 保存地图
tmap_save(m, "my_mapp.png")

说明

  • us_states()函数会返回美国所有州的边界sf对象,通过filter(state_abbr == "NM")精准筛选出新墨西哥州
  • 先绘制州底图,tmap会自动将地图范围适配到该州的边界,采样点自然会处于地图中心区域,不会再出现在角落
  • 可根据需求调整tm_polygons的填充色、tm_dots的颜色和大小,优化可视化效果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 15:45:20