在ggplot/ggmap中省略一些边框

Luc*_*ina 8 r ggplot2 ggmap

我是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
Run Code Online (Sandbox Code Playgroud)

现在,我有两个问题.

1)国家边界似乎做了奇怪的事情.这是关闭县覆盖的屏幕截图:

在此输入图像描述

2)鉴于这只是关于阿拉巴马州,我想关闭国界以外的边界,但我不知道该怎么做.我的猜测是试验xlimylim,但我不知道如何限制它们到阿拉巴马边界多边形.

Did*_*rts 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")
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

  • @LuciusSergiusCatilina尝试geom_point(data = dat,inherit.aes = FALSE,aes(y = Lat,x = Lon,size = Growth,color = Growth> 0))+ scale_colour_manual(values = c("red","blue") )) (2认同)