用ggplot2绘制shapefile的工件

时间:2014-11-22 16:48:54

标签: r ggplot2 gis shapefile

在试图从人口普查局的2013年形状文件中绘制美国县时,得到的地块有漏洞/奇怪的填充,特别是在不连续区域的县周围。我认为它与绘制的点的顺序有关,但不确定如何修复它。例如,佛罗里达州的情节,特别是密钥周围的情节产生:

library(ggplot2)
library(dplyr)
library(rgdal)

download.file('http://www2.census.gov/geo/tiger/GENZ2013/cb_2013_us_county_500k.zip',
'county.zip')
unzip('county.zip')

uscounties <- readOGR(.,'cb_2013_us_county_500k' )
uscounties@data$id <- rownames(uscounties@data)
countypoints <- fortify(uscounties, region='id')
countydf <- join(countypoints, uscounties@data, by='id')

ggplot(countydf[countydf$STATEFP=='12' ,])+
  aes(long, lat, group=COUNTYNS, fill=STATEFP)+
  geom_polygon()+
  geom_path(color="black")+
  coord_equal()

以下是结果图: 佛罗里达只是一个例子。大多数其他州也会在绘图中显示类似的错误。有关如何修复的任何想法?

1 个答案:

答案 0 :(得分:3)

你为什么要设置group=COUNTYNS?使用group=id

ggplot(countydf[countydf$STATEFP=='12' ,])+
  aes(long, lat, group=group, fill=STATEFP)+
  geom_polygon()+geom_path(color="black")+coord_equal()

发布问题时需要更加小心,以免浪费人们的时间.. join(...)包在plyr而非dplyr

readOGR(.,"...")

不起作用,你需要

readOGR(dsn=".",layer="...")