使用R语言tmap库绘制比利时及省份地图:如何获取所需Shape对象数据?
嘿,我来给你几个靠谱的获取比利时行政区划矢量数据的方法,刚好适配你用tmap绘图的需求:
靠谱的比利时行政区划矢量数据获取途径
R包直接获取(最省心的方式)
推荐用rnaturalearth或者gadm4R这两个R包,能直接在R里拉取数据,不用手动下载文件,而且返回的是tmap完美兼容的sf格式对象:- 用
rnaturalearth的话:# 安装并加载包 install.packages("rnaturalearth") library(rnaturalearth) # 获取比利时国家边界数据 Belgium <- ne_countries(country = "belgium", returnclass = "sf") # 获取比利时省份(一级行政区)数据 Belgium_provinces <- ne_states(country = "belgium", returnclass = "sf") - 用
gadm4R的话(数据精度更高一些):install.packages("gadm4R") library(gadm4R) # level=0是国家,level=1是省份 Belgium <- getGADM(country = "BEL", level = 0) Belgium_provinces <- getGADM(country = "BEL", level = 1)
拿到数据后直接用你写的
tm_shape(Belgium) + tm_polygons()就能绘图啦,完全适配。- 用
官方数据源下载
比利时有官方的地理数据平台提供高精度的行政区划数据,你可以找到比利时国家地理相关机构的公开数据页面,下载Shapefile格式的行政区划文件(省份级别的),然后用sf包导入R:library(sf) # 替换成你下载的文件路径 Belgium_provinces <- st_read("path/to/your/Belgium_provinces.shp")这种数据的准确性最高,适合对精度要求高的场景。
开源数据仓库
还有一些全球开源的行政区划数据库,比如GADM或者Natural Earth,除了用R包获取,你也可以直接去它们的平台下载Shapefile,再导入R处理,不过用R包直接获取肯定是最省事的~
内容的提问来源于stack exchange,提问作者user10708236
相关产品推荐
相关产品推荐

