Как я могу полностью избавиться от границ, используя geom_sf? (Сетки были созданы с помощью st_make_grid.) Я пробовал color=NA и size=0, но ни один из них не делает то, что я хочу.
ggplot() +
geom_sf(data = plot_data, aes(fill = as.vector(dist)), color=NA, size=0) +
scale_fill_viridis(discrete=FALSE, name = "", direction=-1) +
geom_sf(data = states, fill=alpha("black", 0)) +
theme_bw()
Пример:
Это касается: Как удалить линии границ при использовании geom_sf?.





Это, кажется, несколько зависит от устройства. Я могу воспроизвести вашу проблему на моей машине следующим образом:
library(sf)
library(tidyverse)
states <- st_as_sf(maps::map("state", fill = TRUE, plot = FALSE)) %>%
filter(ID %in% c("kansas", "oklahoma", "missouri", "arkansas")) %>%
mutate(geom = st_crop(geom, c(xmin = -96.5, xmax = -94,
ymin = 35, ymax = 37.25)))
plot_data <- st_make_grid(states, n = 80) %>%
st_as_sf() %>%
mutate(geom = x,
dist = st_distance(geom,
st_as_sfc(list(st_point(c(-96, 36))), crs = "WGS84")))
ggplot() +
geom_sf(data = plot_data, aes(fill = as.vector(dist)), size = 0, color = NA) +
scale_fill_viridis_c(name = "", direction = -1) +
geom_sf(data = states, fill = alpha("black", 0), linewidth = 2) +
theme_bw()
Самый простой способ исправить это — вместо того, чтобы пытаться заставить линии исчезнуть, просто раскрасьте их так же, как поля сетки.
ggplot() +
geom_sf(data = plot_data, aes(fill = as.vector(dist),
color = after_scale(fill)), linewidth = 1) +
scale_fill_viridis_c(name = "", direction=-1) +
geom_sf(data = states, fill = alpha("black", 0), linewidth = 2) +
theme_bw()