如何在 R 中突出显示 tmap 上的位置?
How to highlight locations on a tmap in R?
我正在尝试使用 tm_text 添加文本以使用 R 中的 tmap 包在地图上定义位置。
这是我用来制作地图的代码:
library(tmap)
library(spData)
tm_shape(nz) +
tm_fill("Population") +
tm_borders() +
tm_layout(basemaps = leaflet::providers$Esri.WorldTopoMap)
我找不到可以突出显示地图上我感兴趣的位置的另一张底图,所以我想知道是否有一种方法可以将文本覆盖到某些区域?
例如,在下图中,我想添加文本以突出显示中央鹰湾区和北帕默顿。
要通过 tm_text()
调用向 tmap 地图添加文本,您需要两件事 - 标签和位置。
在 google 地图的帮助下,我找到了北帕默斯顿和中央霍克斯湾的坐标(之前从未听说过:),我提出以下解决方案:
library(tmap)
library(spData)
library(sf)
points <- data.frame(name = c("Central Hawke's Bay", "Palmerston North"),
x = c(176.474193, 175.611667),
y = c(-39.922303, -40.355),
stringsAsFactors = F)
points <- st_as_sf(points, coords = c("x", "y"), crs = 4326)
tmap_mode("view")
tm_shape(nz) +
tm_fill("Population") +
tm_borders() +
tm_shape(points) + tm_text("name") +
tm_basemap(leaflet::providers$Esri.WorldTopoMap)
我已经包含了对 {sf} 的库调用,以便于将坐标作为数字转换为空间数据框。我还稍微修改了您的 {tmap} 调用以适应当前的 tmap 最佳实践。
我正在尝试使用 tm_text 添加文本以使用 R 中的 tmap 包在地图上定义位置。
这是我用来制作地图的代码:
library(tmap)
library(spData)
tm_shape(nz) +
tm_fill("Population") +
tm_borders() +
tm_layout(basemaps = leaflet::providers$Esri.WorldTopoMap)
我找不到可以突出显示地图上我感兴趣的位置的另一张底图,所以我想知道是否有一种方法可以将文本覆盖到某些区域?
例如,在下图中,我想添加文本以突出显示中央鹰湾区和北帕默顿。
要通过 tm_text()
调用向 tmap 地图添加文本,您需要两件事 - 标签和位置。
在 google 地图的帮助下,我找到了北帕默斯顿和中央霍克斯湾的坐标(之前从未听说过:),我提出以下解决方案:
library(tmap)
library(spData)
library(sf)
points <- data.frame(name = c("Central Hawke's Bay", "Palmerston North"),
x = c(176.474193, 175.611667),
y = c(-39.922303, -40.355),
stringsAsFactors = F)
points <- st_as_sf(points, coords = c("x", "y"), crs = 4326)
tmap_mode("view")
tm_shape(nz) +
tm_fill("Population") +
tm_borders() +
tm_shape(points) + tm_text("name") +
tm_basemap(leaflet::providers$Esri.WorldTopoMap)
我已经包含了对 {sf} 的库调用,以便于将坐标作为数字转换为空间数据框。我还稍微修改了您的 {tmap} 调用以适应当前的 tmap 最佳实践。