ggplot2与ggmap奇形多边形R.

时间:2014-03-13 18:24:58

标签: r ggplot2 spatial shapefile

我正在尝试使用ggplot2绘制多边形shapefile,我得到一些奇怪的结果。我使用以下代码在shapefile中读取一个多边形:

zctaSp<-readShapePoly("zctaSp.shp")

然后我使用两种不同的方法进行绘图,其中两种方法有效,但我需要的方法没有。

第1页:形状看起来正确:

plot(zctaSp)

plot1

第2页:形状看起来也是正确的,看起来与情节2几乎相同:

ggplot(data=zctaSp, aes(x=long, y=lat, group=group)) + geom_polygon()

plot2

第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)

plot3

我将shapefile放在http://bit.ly/1nnlAg3

请注意,在this link按照Hadley Wickham的说明运行fortify命令后,我也尝试进行绘图,但这并没有改善。

1 个答案:

答案 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)

ggmap

来自Qgis的地图

enter image description here

关于本练习中使用的预测,NAD 83 / WGS84可能是一个陷阱。 NAD83和WGS84之间略有不同。 NAD83依赖于GRS80数据,其实现与WGS84非常相似但不相同。

对于这些ggmap,应始终使用未投影的WGS84(epsg4326)。