r - R中的ggplot地图-边界内的标题和边界内的更多空间
问题描述
我编写了一些代码来制作与美国各州和领地的地图。对于某些地区,我需要在标题外画一个边框,为地图留出更多空间。请参阅下面为夏威夷提取的一块,灰色边框是我现在拥有的,但我需要类似于我在油漆中编辑的红色边框的东西(是的,我知道使用油漆非常糟糕)。关于如何解决这个问题的任何建议?我尝试使用 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
解决方案
您可以将 设置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()
推荐阅读
- vue.js - 在组合 API 中使用道具时组件保持可见
- c# - Xamarin Google Pay 实施
- amazon-dynamodb - 对流层 DynamoDB 生存时间规范
- flutter - 声明一个变量来存储一个对象,该对象仅使用 dart 中的特定命名构造函数构造
- ruby-on-rails - Ruby:安装了 bundler-2.2.7 导致安装旧的 gem。如何强制它使用 bundler-2.2.5 或其他解决方案?
- r - Igraph中的最短路径(路径+长度)
- database-design - 我应该使用接收端所需的所有数据发出微服务事件,还是允许服务从数据库中获取额外数据?
- python - 如何在一个 python 文件中创建 SQLAlchemy 数据库并在同一项目的另一个 python 文件中使用它?
- jquery - 为什么验证不起作用?
- linux - 为什么我不能在我的 linux 上运行程序(qemu 模拟 arm32,并启动一个 linux 操作系统)