8

我对 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)鉴于这只是关于阿拉巴马州,我想关闭州边界以外的边界,但我不知道该怎么做。我的猜测是尝试使用xlimand ylim,但我不知道如何将它们限制为阿拉巴马州边界多边形。

4

1 回答 1

12

似乎borders()某些状态的坐标函数连接在一起。

要解决此问题,您可以使用将state边框存储为单独的数据框map_data(),然后state使用将边框添加geom_path()到地图中。另外geom_path()确保group=region点仅根据一个区域连接。

要仅显示阿拉巴马州县的边界,您应该region="alabama"向 function添加参数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")

在此处输入图像描述

于 2013-03-28T08:41:05.447 回答