R语言 使用geom_sf_label()在文本周围加边框

um6iljoc  于 2023-01-15  发布在  其他
关注(0)|答案(1)|浏览(378)

这是我在这个论坛上的第一个问题。我正在R中使用Map可视化,在绘图时我无法得到预期的结果。
如标题所示,我希望文本周围有一个黑色边框。下面是我的代码:

library(dplyr)
library(geodata)
library(ggplot2)
library(sf)

gadm_valp_com <- gadm(country="CHL", level=3, path=tempdir()) %>%
  st_as_sf() %>%
  filter(NAME_1 == "Valparaíso")

ggplot(gadm_valp_com) + geom_sf(data = gadm_valp_com) +
  geom_sf_text(aes(label = NAME_3), size=1, family="lato", colour = "white")

注意:我尝试使用geom_sf_label(),但这不是我所需要的。
先谢了。

goqiplq2

goqiplq21#

如果你想要一个与文本颜色相同的边框,你可以只使用geom_sf_label()fill = NA
如果希望边框的颜色与文本的颜色不同,可以使用ggtext::geom_richtext(),指定label_colour参数以及stat = "sf_coordinates",使其行为类似于geom_sf_label()

library(dplyr)
library(ggplot2)
library(ggtext)
library(sf)

nc <- st_read(system.file("shape/nc.shp", package="sf"))

counties <- filter(nc, NAME %in% c("Washington", "Tyrrell", "Hyde", "Dare"))

ggplot(counties) + 
  geom_sf(fill = "grey60") +
  geom_richtext(
    aes(label = NAME, geometry = geometry), 
    stat = "sf_coordinates",
    size = 14 / .pt,
    colour = "white",
    label.colour = "black",
    fill = NA,
    label.r = unit(0, "lines")
  ) +
  theme_void()

相关问题