tm_text 在 tmap 中产生重复文本
tm_text produces duplicate text in tmap
我正在尝试使用库 tmap
和 this dataset 制作地图。
在 this discussion 之后,我正在使用以下简单代码:
library(tmap)
library(geobr)
library(sf)
rg = st_as_sf(polygons_regioes_adm_sp)
tm_shape(rg) +
tm_polygons("regiao_administrativa",
legend.show = F) +
tm_text("regiao_administrativa", size = 1/2)
这会生成以下带有重叠 DUPLICATE 文本的地图。我尝试在 tm_text
中插入 remove.overlap = TRUE
但这并没有更好的效果。
此外,我收到以下消息:
old-style crs object detected; please recreate object with a recent sf::st_crs()
在这种情况下,如何获得没有重复文本的地图?
您使用 tmap
库显示地图的代码没有问题。问题是 sf
对象 polygons_regioes_adm_sp
混合了 POLYGON
和 MULTIPOLYGON
。因此,您只需要通过 运行 st_cast()
函数来简化 sf
对象。
至于投影问题,您只需指定EPSG代码即可将CRS
的最近形式分配给sf
对象(注意:至于警告信息- cf.below - 别担心,没关系)
所以,请找到下面的代码来正确显示行政区域的名称。
library(tmap)
library(sf)
library(dplyr) # please, do not forget to load this library
rg <- polygons_regioes_adm_sp %>%
st_set_crs(4674) %>%
st_cast()
#> old-style crs object detected; please recreate object with a recent sf::st_crs()
#> Warning: st_crs<- : replacing crs does not reproject data; use st_transform for
#> that
tm_shape(rg) +
tm_polygons("regiao_administrativa",
legend.show = F) +
tm_text("regiao_administrativa", size = 1/2)
由 reprex package (v2.0.1)
于 2021-11-13 创建
我正在尝试使用库 tmap
和 this dataset 制作地图。
在 this discussion 之后,我正在使用以下简单代码:
library(tmap)
library(geobr)
library(sf)
rg = st_as_sf(polygons_regioes_adm_sp)
tm_shape(rg) +
tm_polygons("regiao_administrativa",
legend.show = F) +
tm_text("regiao_administrativa", size = 1/2)
这会生成以下带有重叠 DUPLICATE 文本的地图。我尝试在 tm_text
中插入 remove.overlap = TRUE
但这并没有更好的效果。
此外,我收到以下消息:
old-style crs object detected; please recreate object with a recent sf::st_crs()
在这种情况下,如何获得没有重复文本的地图?
您使用 tmap
库显示地图的代码没有问题。问题是 sf
对象 polygons_regioes_adm_sp
混合了 POLYGON
和 MULTIPOLYGON
。因此,您只需要通过 运行 st_cast()
函数来简化 sf
对象。
至于投影问题,您只需指定EPSG代码即可将CRS
的最近形式分配给sf
对象(注意:至于警告信息- cf.below - 别担心,没关系)
所以,请找到下面的代码来正确显示行政区域的名称。
library(tmap)
library(sf)
library(dplyr) # please, do not forget to load this library
rg <- polygons_regioes_adm_sp %>%
st_set_crs(4674) %>%
st_cast()
#> old-style crs object detected; please recreate object with a recent sf::st_crs()
#> Warning: st_crs<- : replacing crs does not reproject data; use st_transform for
#> that
tm_shape(rg) +
tm_polygons("regiao_administrativa",
legend.show = F) +
tm_text("regiao_administrativa", size = 1/2)
由 reprex package (v2.0.1)
于 2021-11-13 创建