天天看點

R ggplot2 | 用geom_sf()繪制地圖

用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
           

結果:

R ggplot2 | 用geom_sf()繪制地圖

繪圖中遇到了一個問題是原始資料y範圍很大,空出了一些空白很不美觀。查閱很多資料,有一篇文章是通過設定bbox範圍,通過地理坐标與平面坐标轉化,再設定到繪圖函數參數裡實作,順便撈到了proj4等參數的網站,小本本記下:

ArcGIS地理坐标編碼

查找空間參考各種參數

繪圖範圍設定,投影轉換

正當我采用連結3的方法進行嘗試,打開arcgis後發現直接可以通過光标大緻确定y範圍及數字,是以直接在coord_sf()中設定ylim=c(,)即可…于是立馬得到了上圖。但是後續畫點的時候似乎又遇到了一點問題…接下一篇吧…

PS:因為研究區是mainland China,且上圖是中國1級流域分區,是以南海諸島就沒有畫。