ggplot2優(yōu)雅的繪制高端地形圖

最近有朋友需要一張地形圖二鳄,碰巧自己沒接觸過,索性趁著周末琢磨了一番订讼;下面就給各位觀眾老爺介紹一下如何如何通過ggplot2繪制一張地形圖,全部細節(jié)公開欺殿,

加載R包

由于數(shù)據(jù)處理涉及很多細節(jié)因此需要加載如下R包,別問為什么個個都有用

library(geoviz)
library(tidyverse)
library(sf)
library(terra)
library(rasterVis)
library(ggspatial)
library(rgdal)
library(rnaturalearth)
library(rnaturalearthdata)
library(raster)

作為一個陜西人程拭,首先來介紹如何繪制一張陜西省的地形圖,下面讀入陜西省的經(jīng)緯度信息

lat=35.3940
long=109.1880
square_km=400

核心點1(DEM數(shù)據(jù)的獲取)

可以通過geoviz包的mapbox_dem函數(shù)獲取DEM數(shù)據(jù)恃鞋,由于此函數(shù)需要API密鑰因此首先需要注冊賬號才能獲得密鑰,也可以使用下面我的密鑰

dem <- mapbox_dem(lat,long,square_km,
                  api="pk.eyJ1IjoiYmVueXNmIiwiYSI6ImNrczBtdWE0ajBwNjcydnBqMjRyZDdsOXkifQ.sUcMdooE7b9uQqzfrnWdSQ")

核心點2(獲取陜西省地圖)

可通過如下Datav獲取各個省的地圖


下載第一個JSON文件即可恤浪,復制鏈接可通過IDM等下載工具下載

shp <- sf::read_sf("shanxi.json") # 讀入陜西省地圖
shanxi<- raster::mask(dem,shp) %>% # 將地圖與DEM數(shù)據(jù)結合
  crop(.,extent(shp))

df_shanxi <- as.data.frame(as(shanxi,"Raster"),xy=T) #格式轉換

核心點3(獲取河流信息)

通過ne_download下載世界河流信息水由,后續(xù)要將河流信息添加到ggplot2圖中,因此通過 st_as_sf將其轉換為sf

rivers <- ne_download(scale = 10, type = 'rivers_lake_centerlines',category = 'physical')

設置河流經(jīng)緯度信息

此處的xmin砂客,ymin代表河流的經(jīng)緯度信息,應該根據(jù)后續(xù)繪制出來的地圖判讀鞠值,為了代碼的整潔性我將其提前放置了

rivers_cropped <- st_crop(st_as_sf(rivers), xmin = 107, xmax =111,
                          ymin = 32, ymax =39)

完成以上3大核心步驟可以說我們已經(jīng)就成功了,ggplot2繪制地形圖關鍵點就在于前3點齿诉,此前參考氣象水文科研貓的文檔筝野,作者只介紹了繪圖上面三大核心點真是一筆帶過粤剧,在此感謝作者的簡單介紹

自定義顏色

colors <- c("#33A02C","#B2DF8A","#FDBF6F","#1F78B4","#999999",
             "#E31A1C","#E6E6E6","#A6CEE3")

ggplot2數(shù)據(jù)可視化

ggplot()+
  geom_sf(data=shp,aes(fill = NULL))+
  annotation_scale(location = "bl") + # 設置距離刻度尺
  annotation_north_arrow(location="tl",
                         style = north_arrow_nautical(
                           fill = c("grey40","white"),
                           line_col = "grey20"))+  # 添加指北針
  geom_tile(data=df_shanxi,aes(x=x,y=y,fill=layer),show.legend = F)+
  geom_sf(data = rivers_cropped,col='blue',size=1)+ # 添加河流信息
  scale_fill_gradientn(colours=colors,na.value="transparent")+ 
  labs(x=NULL,y=NULL)+
  geom_sf(data=shp,fill="NA",size=1,color="black")+ # 添加地圖邊界
  theme_bw()+
  theme(panel.grid.major=element_blank(),
        panel.grid.minor=element_blank(),
        panel.background = element_blank(),
        legend.title = element_blank())

喜歡的小伙伴歡迎關注我的公眾號

R語言數(shù)據(jù)分析指南抵恋,持續(xù)分享數(shù)據(jù)可視化的經(jīng)典案例及一些生信知識宝磨,希望對大家有所幫助

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市唤锉,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌窿祥,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,820評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件嗤瞎,死亡現(xiàn)場離奇詭異,居然都是意外死亡贝奇,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,648評論 3 399
  • 文/潘曉璐 我一進店門掉瞳,熙熙樓的掌柜王于貴愁眉苦臉地迎上來浪漠,“玉大人,你說我怎么就攤上這事郑藏。” “怎么了必盖?”我有些...
    開封第一講書人閱讀 168,324評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長歌粥。 經(jīng)常有香客問我,道長失驶,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,714評論 1 297
  • 正文 為了忘掉前任,我火速辦了婚禮棉圈,結果婚禮上,老公的妹妹穿的比我還像新娘分瘾。我一直安慰自己,他們只是感情好德召,可當我...
    茶點故事閱讀 68,724評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著上岗,像睡著了一般。 火紅的嫁衣襯著肌膚如雪液茎。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,328評論 1 310
  • 那天捆等,我揣著相機與錄音续室,去河邊找鬼。 笑死挺狰,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的丰泊。 我是一名探鬼主播薯定,決...
    沈念sama閱讀 40,897評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼话侄,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了年堆?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,804評論 0 276
  • 序言:老撾萬榮一對情侶失蹤变丧,失蹤者是張志新(化名)和其女友劉穎绢掰,沒想到半個月后童擎,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,345評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡顾复,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,431評論 3 340
  • 正文 我和宋清朗相戀三年炎辨,在試婚紗的時候發(fā)現(xiàn)自己被綠了聪姿。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片碴萧。...
    茶點故事閱讀 40,561評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡破喻,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出曹质,到底是詐尸還是另有隱情,我是刑警寧澤擎场,帶...
    沈念sama閱讀 36,238評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站宅静,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏站欺。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,928評論 3 334
  • 文/蒙蒙 一磷账、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧贾虽,春花似錦、人聲如沸蓬豁。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,417評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至驶忌,卻和暖如春笑跛,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背飞蹂。 一陣腳步聲響...
    開封第一講書人閱讀 33,528評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留陈哑,地道東北人。 一個月前我還...
    沈念sama閱讀 48,983評論 3 376
  • 正文 我出身青樓惊窖,卻偏偏與公主長得像,于是被迫代替她去往敵國和親界酒。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,573評論 2 359

推薦閱讀更多精彩內(nèi)容