如何在另一个 ggplot 地图对象下添加一个 ggplot 地图对象?
How do I add a ggplot map object under another ggplot map object?
我想将背景地图(存储为 ggplot
对象)添加到另一个 ggplot 地图,因为某些州有 NA
我删除了,所以它们被排除在地图之外.我使用 patchwork
尝试合并,但它只是将它们并排放置。我希望 back_map
位于 p
.
下方
library(ggplot2)
library(tidyverse)
library(mapdata)
library(patchwork)
library(dplyr)
MainStates <- map_data("state")
State_Name <- c("alabama","arkansas","arizona","california","colorado")
Sales <- c(100,200,250,275,310)
df2 <- data.frame(State_Name,Sales)
MergedStates <- inner_join(MainStates, df2, by = c("region" = "State_Name"))
back_map <- ggplot() + geom_polygon(data=MainStates, aes(x=long, y=lat, group=group),
color="black", fill="white")
p <- ggplot() + geom_polygon(data = MergedStates,
aes(x=long, y=lat, group=group),
fill = ifelse(MergedStates$Sales <=
mean(MergedStates$Sales),"red","green"), size = 0.2)
+ back_map
p
不需要创建单独的 back_map
对象。背景图在代码中排在第一位,如下所示:
p <- ggplot() + geom_polygon(data = MainStates, aes(x=long, y=lat,
group=group),
color = "black", fill = "white") +
geom_polygon(data = MergedStates,
aes(x=long, y=lat, group=group),
fill = ifelse(MergedStates$sngIYA <=
mean(MergedStates$sngIYA),"red","green"),
color = "black", size = 0.2)
我想将背景地图(存储为 ggplot
对象)添加到另一个 ggplot 地图,因为某些州有 NA
我删除了,所以它们被排除在地图之外.我使用 patchwork
尝试合并,但它只是将它们并排放置。我希望 back_map
位于 p
.
library(ggplot2)
library(tidyverse)
library(mapdata)
library(patchwork)
library(dplyr)
MainStates <- map_data("state")
State_Name <- c("alabama","arkansas","arizona","california","colorado")
Sales <- c(100,200,250,275,310)
df2 <- data.frame(State_Name,Sales)
MergedStates <- inner_join(MainStates, df2, by = c("region" = "State_Name"))
back_map <- ggplot() + geom_polygon(data=MainStates, aes(x=long, y=lat, group=group),
color="black", fill="white")
p <- ggplot() + geom_polygon(data = MergedStates,
aes(x=long, y=lat, group=group),
fill = ifelse(MergedStates$Sales <=
mean(MergedStates$Sales),"red","green"), size = 0.2)
+ back_map
p
不需要创建单独的 back_map
对象。背景图在代码中排在第一位,如下所示:
p <- ggplot() + geom_polygon(data = MainStates, aes(x=long, y=lat,
group=group),
color = "black", fill = "white") +
geom_polygon(data = MergedStates,
aes(x=long, y=lat, group=group),
fill = ifelse(MergedStates$sngIYA <=
mean(MergedStates$sngIYA),"red","green"),
color = "black", size = 0.2)