在Ggplot中添加一层不与之前的参数重叠
Add a layer without overlapping the previous parameters in Ggplot
我需要这两件事发生:
图层(地图)1:图例中的这些地图元素不应该有边界线(color = NA)!
图层(地图)2:图例中的这个地图元素应该有一条红色边框线(颜色="red")。
问题:当我添加 "layer 2" 时,"layer 1" 图例中的所有地图元素也将其边框更改为红色。
注意:这只发生在传说中!地图边界没有变化,绘制正确。
这是 运行 在 R 中的示例:
运行只有第1层,是正确的,地图和图例上的元素没有边框颜色:
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
图例元素中没有边框颜色的第 1 层:
但是,添加第二层时,所有元素都有红色边框,包括第 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
第 1 层和第 2 层,图例的所有元素都带有红色边框颜色:
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"))))
我需要这两件事发生:
图层(地图)1:图例中的这些地图元素不应该有边界线(color = NA)!
图层(地图)2:图例中的这个地图元素应该有一条红色边框线(颜色="red")。
问题:当我添加 "layer 2" 时,"layer 1" 图例中的所有地图元素也将其边框更改为红色。
注意:这只发生在传说中!地图边界没有变化,绘制正确。
这是 运行 在 R 中的示例:
运行只有第1层,是正确的,地图和图例上的元素没有边框颜色:
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
图例元素中没有边框颜色的第 1 层:
但是,添加第二层时,所有元素都有红色边框,包括第 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
第 1 层和第 2 层,图例的所有元素都带有红色边框颜色:
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"))))