【问题标题】:ggplot map in R - title inside border and more space within borderR中的ggplot地图-边界内的标题和边界内的更多空间
【发布时间】:2021-01-06 17:08:52
【问题描述】:

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

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

【问题讨论】:

    标签: r dictionary ggplot2 border


    【解决方案1】:

    您可以将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()
    

    【讨论】:

      猜你喜欢
      • 2021-12-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-10
      • 2018-02-03
      • 2014-06-16
      • 2015-04-03
      相关资源
      最近更新 更多