用geom_sf()绘制地图
使用geom_polygon()绘制地图,每次都会提示该功能已经deprecated,而sf包配合ggplot2的geom_sf()函数则能快速地绘制地图,且无须设置long,lat,group=id这些参数。代码如下:
ws <- ggplot() +
geom_sf(data = fortify(wsdiv1),
colour = "black",
fill=NA)+
coord_sf(ylim=c(1800000,5921396))+
theme_set(theme_bw())
ws
结果:
绘图中遇到了一个问题是原始数据y范围很大,空出了一些空白很不美观。查阅很多资料,有一篇文章是通过设置bbox范围,通过地理坐标与平面坐标转化,再设置到绘图函数参数里实现,顺便捞到了proj4等参数的网站,小本本记下:
ArcGIS地理坐标编码
查找空间参考各种参数
绘图范围设置,投影转换
正当我采用链接3的方法进行尝试,打开arcgis后发现直接可以通过光标大致确定y范围及数字,因此直接在coord_sf()中设置ylim=c(,)即可…于是立马得到了上图。但是后续画点的时候似乎又遇到了一点问题…接下一篇吧…
PS:因为研究区是mainland China,且上图是中国1级流域分区,因此南海诸岛就没有画。