Это мой первый вопрос на этом форуме. Я работаю с визуализацией карты в R и во время построения не могу получить ожидаемый результат.
Как следует из названия, я ищу черную рамку вокруг текста. Вот мой код:
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(), но это не то, что мне нужно.
Заранее спасибо.
Geom_sf_label() выдаёт что-то вроде этого stackoverflow.com/questions/65096700/… Мне просто нужна чёрная рамка вокруг текста, а не квадрат, но я не знаю как
Если вам нужна рамка того же цвета, что и текст, вы можете просто использовать 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()
Когда вы использовали geom_sf_label(), насколько конкретно это было не то, что вам нужно?