我有一个 shapefile,我使用它在 ggplot2 中进行了强化和绘制geom_polygon
。我怎样才能只绘制这张地图的一小部分区域?
我的完整地图看起来不错,但我的小区域很混乱。
这是一个工作示例:
这个小形状文件可以从以下位置获得:
http://www.mappinghacks.com/data/TM_WORLD_BORDERS_SIMPL-0.2.zip http://www.mappinghacks.com/data/TM_WORLD_BORDERS_SIMPL-0.2.zip
#read data
spf<-readOGR(getwd(),"TM_WORLD_BORDERS_SIMPL-0.2")
spf@data$id<-rownames(spf@data)
#fortify
spf1<-fortify(spf,region="id")
#full plot
ggplot(spf1)+geom_polygon(aes(long,lat,group=group),colour="grey90")
#subset plot #this is messy since polygons are broken
ggplot(spf1)+geom_polygon(aes(long,lat,group=group),colour="grey90")+
scale_x_continuous(limits = c(-2, 2))+
scale_y_continuous(limits = c(50, 51))
Thanks.
The limits
论证中scale_x_...
and scale_y...
设置规模的限制。不会绘制这些限制之外的任何值(基础数据将被删除)。这包括可能仅部分超出这些限制的元素(例如多边形)。
如果你想zoom通过设置坐标限制来绘制绘图,然后使用xlim
and ylim
论点coord_....
函数,从?coord_cartesian http://docs.ggplot2.org/0.9.3.1/coord_cartesian.html
在坐标系上设置限制将缩放绘图(就像您用放大镜查看它一样),并且不会像在比例上设置限制那样改变基础数据。
在你的情况下,你有一个map
,你可以使用coord_map
,它将使用地图投影来投影您的数据。
eg
ggplot(spf1, aes(x=long,y=lat,group=group)) +
geom_polygon(colour = 'grey90') +
coord_map(xlim = c(-2, 2),ylim = c(50, 51))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)