I need these two things to happen:
Layer (map) 1: These map elements in the legend should not have border line (colour = NA)!
Layer (map) 2: This map element in the legend should have a red border line (colour = "red").
Here is an example to run in R:
Running only layer 1, is correct, the elements on the map and the legend have no border color:
library("sf"); library("ggplot2")
library("rnaturalearth"); library("rnaturalearthdata") #packages containing the example layers
layer1 <- ne_countries(returnclass = "sf")
ggplot() +
geom_sf(data = layer1, #layer 1
aes(fill = as.factor(region_un)), # example of variable
colour = NA) # removing the borders
Layer 1 with no border color in the element of legend:
However, when adding a second layer, all elements have a red border, including layer 1:
layer2 <- layer1[layer1$region_un == "Africa", ] # layer 2
ggplot() +
geom_sf(data = layer1, #layer 1
aes(fill = as.factor(region_un)),
colour = NA) + # removing the borders
geom_sf(data = layer2 , #layer 2
aes(fill = region_wb),
alpha = 0, # transparent fill
colour = "red") # red border line
Layer 1 and layer 2, with all elements of legend with red border color:
library("sf"); library("ggplot2")
library("rnaturalearth"); library("rnaturalearthdata") #packages containing the example layers
layer1 <- ne_countries(returnclass = "sf")
layer2 <- layer1[layer1$region_un == "Africa", ] # layer 2
ggplot() +
geom_sf(data = layer1, #layer 1
aes(fill = as.factor(region_un)),
colour = NA) + # removing the borders
geom_sf(data = layer2 , #layer 2
aes(fill = region_wb),
alpha = 0, # transparent fill
colour = "red") + # red border line
guides(fill = guide_legend (
override.aes = list(colour = c(NA, NA, NA, NA, NA, "red",
NA, NA, "red"))))