我正在尝试使用ggplot2绘制多边形shapefile,我得到一些奇怪的结果。我使用以下代码在shapefile中读取一个多边形:
zctaSp<-readShapePoly("zctaSp.shp")
然后我使用两种不同的方法进行绘图,其中两种方法有效,但我需要的方法没有。
第1页:形状看起来正确:
plot(zctaSp)
第2页:形状看起来也是正确的,看起来与情节2几乎相同:
ggplot(data=zctaSp, aes(x=long, y=lat, group=group)) + geom_polygon()
第3页:但是形状被破坏了:
ggplot(data=zctaSp, aes(x=long, y=lat, group=group)) + geom_polygon()
atl <- qmap('atlanta', zoom=11, color="bw")
atl + geom_polygon(data=zctaSp, aes(x=long, y=lat, group=group), alpha=1)
我将shapefile放在http://bit.ly/1nnlAg3。
请注意,在this link按照Hadley Wickham的说明运行fortify
命令后,我也尝试进行绘图,但这并没有改善。
答案 0 :(得分:1)
尝试:
library(ggmap)
library(rgdal)
# Data using NAD83 - epsg: 4269
zct <- readOGR(dsn = 'D:/Programacao/R/Stackoverflow/22387624',
layer = 'zctaSp')
zctdf <- fortify(zct)
# Project to wgs84
wgs84proj <- CRS('+init=epsg:4326')
zct_g <- spTransform(zct, wgs84proj)
zctgdf <- fortify(zct_g)
map_loc <- get_map(location = c(lon = mean(zctgdf$lon), mean(zctgdf$lat)),
source = 'google', zoom = 11)
map <- ggmap(map_loc, extent = 'device')
map +
geom_polygon(data=zctgdf, aes(x=long, y=lat, group=group), alpha=.8)
来自Qgis的地图
关于本练习中使用的预测,NAD 83 / WGS84可能是一个陷阱。 NAD83和WGS84之间略有不同。 NAD83依赖于GRS80数据,其实现与WGS84非常相似但不相同。
对于这些ggmap,应始终使用未投影的WGS84(epsg4326)。