我是R的新手,我正在玩一个项目来预测2010年到2020年阿拉巴马州的人口增长预测。这是我的代码:
dat <- read.table("C:/Users/rasmus/Documents/countyinfo.txt", sep="\t", header=TRUE)
library(ggplot2)
library(maps)
library(ggmap)
mdat <- map_data('county')
str(mdat)
al1 = get_map(location = c(lon = -86.304474, lat = 32.362563),
zoom = 7, maptype = 'roadmap')
al1MAP = ggmap(al1) +
geom_point(data=dat,inherit.aes = FALSE,
aes(y=Lat, x=Lon, map_id=County, size=Growth), col="red") +
borders("state", colour="red", alpha=0.8) +
borders("county", colour="blue", alpha=0.5)
al1MAP
现在,我有两个问题。
1)国家边界似乎做了奇怪的事情。这是关闭县覆盖的屏幕截图:
2)鉴于这只是关于阿拉巴马州,我想关闭国界以外的边界,但我不知道该怎么做。我的猜测是试验xlim
和ylim
,但我不知道如何将它们限制在阿拉巴马州的边界多边形。
答案 0 :(得分:12)
似乎某些状态的坐标函数borders()
连接在一起。
要解决此问题,您可以使用state
将map_data()
边框存储为单独的数据框,然后使用state
将geom_path()
边框添加到地图中。在geom_path()
添加group=region
以确保仅根据一个区域连接点。
要显示阿拉巴马州的边界,您应该将参数region="alabama"
添加到函数borders()
。
al1 = get_map(location = c(lon = -86.304474, lat = 32.362563),
zoom = 6, maptype = 'roadmap')
mdat <- map_data('state')
ggmap(al1) +
geom_path(data=mdat,aes(x=long,y=lat,group=region),colour="red",alpha=0.8)+
borders("county", colour="blue", alpha=0.5,region="alabama")