我想Map一些光栅数据使用tmap包。我的地理范围是欧洲和R找不到欧洲的Mapaltough我得到了最新版本的R和所有需要的软件包。我正在尝试这个:
library(tmap) data(Europe) tm_shape(Europe) + tm_fill()
上面写着
Error in as.list.environment(environment()) : object 'Europe' not found
我发现这种方法几乎在每个网站上都能做到,不知道为什么它不起作用。谢谢你的帮助!
ttp71kqs1#
自版本2以来,欧洲数据集已从{tmap}中删除。但它曾经住在那里,你仍然可以在许多较老的博客帖子中找到它,甚至如此的答案(恐怕包括我的)。如果将{tmap}降级到1.11-2或更低版本,则可能会使其正常工作。或者你可以从其他包建立欧洲形状,有很多。对于快速和肮脏的可视化,您可以考虑{rnaturalearth},对于更花哨的东西,考虑{giscoR},它与欧盟统计局接口。
{tmap}
{rnaturalearth}
{giscoR}
world <- rnaturalearth::countries110 europe <- world[world$region_un=="Europe"&world$name!='Russia',] library(tmap) tm_shape(europe) + tm_fill()
arknldoa2#
也许你能找到一个有效的组合。这只是子集的一个样本。
library(tmap) tm_shape(countries_spdf[countries_spdf@data$subregion == "Western Europe", ]) + tm_borders() tm_shape(countries_spdf[countries_spdf@data$subregion == "Eastern Europe", ]) + tm_borders() tm_shape(countries_spdf[countries_spdf@data$region == "Europe", ]) + tm_borders()
kd3sttzy3#
我使用giscoR包,对于边界,我将giscoR包中gisco_get_nuts()函数的输出传递给t m_shape()函数。通常,我通过使用https://geojson.io工具直观地选择感兴趣的区域来定义Map的BBOX并保存在geojson文件中代码模板可能如下所示
gisco_get_nuts()
m_shape()
library(sf) library(geojsonsf) library(giscoR) library(tmap) library(tmaptools) map.bbox <- st_bbox(geojson_sf(geojson = "_data/bbox_europa_continental.geojson")) country.ISO3_CODE <- gisco_countrycode %>% filter(continent == "Europe") %>% select(ISO3_CODE) %>% unlist(use.names = F) gisco_get_nuts(country = country.ISO3_CODE, spatialtype = "RG", nuts_level = 0) %>% tm_shape(bbox = map.bbox) + tm_polygons() + tm_borders()
注:迄今为止,似乎giscoR包错过波斯尼亚和科索沃边界
3条答案
按热度按时间ttp71kqs1#
自版本2以来,欧洲数据集已从
{tmap}
中删除。但它曾经住在那里,你仍然可以在许多较老的博客帖子中找到它,甚至如此的答案(恐怕包括我的)。如果将{tmap}降级到1.11-2或更低版本,则可能会使其正常工作。
或者你可以从其他包建立欧洲形状,有很多。对于快速和肮脏的可视化,您可以考虑
{rnaturalearth}
,对于更花哨的东西,考虑{giscoR}
,它与欧盟统计局接口。arknldoa2#
也许你能找到一个有效的组合。这只是子集的一个样本。
kd3sttzy3#
我使用giscoR包,对于边界,我将giscoR包中
gisco_get_nuts()
函数的输出传递给tm_shape()
函数。通常,我通过使用https://geojson.io工具直观地选择感兴趣的区域来定义Map的BBOX并保存在geojson文件中
代码模板可能如下所示
注:迄今为止,似乎giscoR包错过波斯尼亚和科索沃边界