首页 > 解决方案 > R中的ggplot地图-边界内的标题和边界内的更多空间

问题描述

我编写了一些代码来制作与美国各州和领地的地图。对于某些地区,我需要在标题外画一个边框,为地图留出更多空间。请参阅下面为夏威夷提取的一块,灰色边框是我现在拥有的,但我需要类似于我在油漆中编辑的红色边框的东西(是的,我知道使用油漆非常糟糕)。关于如何解决这个问题的任何建议?我尝试使用 panel.border 移动边框但没有成功。最重要的任务是添加边框,为情节提供更多空间。

在 ggplot 中生成并在paint中编辑的地图

library("choroplethrMaps")

# **************************
# Shapefiles for Hawai
# **************************
data(state.map)

# Subset for Hawaii
map.HI.dat <- subset(map.dat, State=="HI" )
dim(map.HI.dat) #[1] 3  95
map.HI.freq <- data.frame(table(map.HI.dat$state.name))
colnames(map.HI.freq) <- c("region", "n")
class(map.HI.freq$region) #[1] "factor"
map.HI.freq$region <- as.character(map.HI.freq$region)
map.HI.freq$region[map.HI.freq$region=="hawai"] <- "hawaii"
#View(map.HI.freq)
hawaii.st <- subset(state.map, region=="hawaii")

map.HI.freq <- data.frame(region="hawaii",
                          n=4)

hawaii.map.dat <- plyr::join(hawaii.st, map.HI.freq, by="region")
hawaii.map.dat$brks <- cut(hawaii.map.dat$n,
                           breaks = c(0, 0.99, 5,10,50,max.breaks),
                           labels = c("0", "1 - 5", "6 - 50", "51 - 150", paste("151 - ",max.breaks,sep="")),
                           include.lowest = TRUE)

s2 <-ggplot() + 
  geom_polygon(data=hawaii.map.dat, aes(x=long, y=lat, group = group, fill=brks), colour="black", size=1, show.legend = FALSE) +
  scale_fill_manual(name="",
                    values = colors.for.maps, 
                    breaks = breaks.for.maps, 
                    drop = FALSE) +
  theme(panel.grid       = element_blank(),
        panel.border     = element_rect(colour = "grey50", size = 2, fill=NA),
        panel.background = element_blank(),
        plot.title       = element_text(colour="black", size = 14, face = "bold", hjust=0.5)) + 
  labs(fill  = "Frequencies",
       title = "Hawaii", x="", y="") + 
  scale_y_continuous(breaks=c()) + 
  scale_x_continuous(breaks=c()) + 
  coord_map() 
s2

标签: rdictionaryggplot2border

解决方案


您可以将 设置plot.background为矩形,然后删除您的panel.border

library("choroplethrMaps")

# **************************
# Shapefiles for Hawai
# **************************
data(state.map)

# Subset for Hawaii
hawaii.st <- subset(state.map, region=="hawaii")

ggplot(hawaii.st) +
    geom_polygon(aes(long, lat, group = group)) +
    theme(panel.grid       = element_blank(),
          panel.background = element_blank(),
          plot.background = element_rect(fill = "white", color = "grey20",size = 2),
          plot.title       = element_text(colour="black", size = 14, face = "bold", hjust=0.5)) + 
    labs(title = "Hawaii", x="", y="") + 
    scale_y_continuous(breaks=c()) + 
    scale_x_continuous(breaks=c()) + 
    coord_map()

在此处输入图像描述


推荐阅读