如何在R的map包中缩放地图,显示含夏威夷与波多黎各的美洲北部?
R中map包缩放至北美区域并显示夏威夷、波多黎各的解决方案
一、缩放地图到指定北美区域
直接在map()函数中通过xlim和ylim参数限定坐标范围,使用你提供的数值即可实现区域缩放:
library(map) # 定义坐标范围 x_limits <- c(-179, -65) y_limits <- c(15, 75) # 绘制限定范围的地图 map("world", col="white", border="gray10", fill=TRUE, bg="grey30", xlim = x_limits, ylim = y_limits)
二、解决夏威夷和波多黎各不显示的问题
map包的"state"数据集仅包含美国本土48个州,夏威夷和波多黎各需要从"world"数据集中单独提取并叠加到地图上:
library(map) x_limits <- c(-179, -65) y_limits <- c(15, 75) # 先绘制美国本土州地图 map("state", col="white", border="gray10", fill=TRUE, bg="grey30", xlim = x_limits, ylim = y_limits) # 叠加夏威夷地图 map("world", regions = "Hawaii", col="white", border="gray10", fill=TRUE, add = TRUE) # 叠加波多黎各地图 map("world", regions = "Puerto Rico", col="white", border="gray10", fill=TRUE, add = TRUE)
三、可选:直接绘制完整北美区域(含主要国家)
如果需要显示加拿大、墨西哥等北美主要区域,可直接从"world"数据集中过滤对应地区:
library(map) x_limits <- c(-179, -65) y_limits <- c(15, 75) # 绘制北美核心区域地图 map("world", regions = c("USA", "Canada", "Mexico", "Hawaii", "Puerto Rico"), col="white", border="gray10", fill=TRUE, bg="grey30", xlim = x_limits, ylim = y_limits)
注意事项
- 若未安装map包,先运行
install.packages("map")完成安装; - 可通过
map("world", plot = FALSE)$names查看"world"数据集的所有区域名称,确保夏威夷、波多黎各的名称拼写正确。
内容的提问来源于stack exchange,提问作者Lukas
相关产品推荐
相关产品推荐

