R語言繪制空間熱力圖實例講解

先上圖

R語言的REmap包擁有非常強大的空間熱力圖以及空間遷移圖功能,裡面內置瞭國內外諸多城市坐標數據,使用起來方便快捷。

開始首先安裝相關包

install_packages("devtools")
install_packages("REmap")
library(devtools)
library(REmap)

我們來試試其強大的城市坐標獲取功能

city<- c("beijing","上海")
get_geo_position(a)

我們可以得到如下表結果,即上海和北京兩所城市的經緯度坐標,這樣寫可以看出,無論輸入漢語拼音“beijing”或是漢語“上海”,都是可以被識別的。

id1120lon116.413554121.480237lat39.91101331.236305citybeijing

那麼,但你拿到一份“城市-指標”數據,如何畫出該指標的空間熱力圖呢?我這邊給大傢示范一份自己的問卷數據QuesData,部分數據見下表:

cityvalue9536191412

面對以上整理好的數據,我們做出如下處理:

df<-data.frame(get_geo_position(as.vector(QuesData$city)))
df2<-data.frame(df[1:2],QuesData$value)

得到我們想要的數據如下:

lon116.413554121.480237lat39.91101331.236305value1995

數據處理完後便可以直接繪圖瞭

options(remap.js.web = T)
theme1 <- get_theme(theme = "dark",lineColor = "White",backgroundColor = "black",titleColor = "#fff",borderColor = "blue",regionColor = "white",labelShow = T,pointShow = F,pointColor = "gold")
remapH(df2,maptype = 'china',theme=theme1,blurSize = 35,color = "blue",minAlpha = 20,opacity = 1)
  • 第一句options是為瞭將web設置為激活狀態,由於REmap是基於D3.js繪圖引擎的,需要使用網頁js產生動態效果。
  • 第二個是為瞭生成一個主題,這個就像ggplot2的一個圖層一樣(個人理解),其中,theme為主題,有Dark,Bright,Sky,None四種,選前三種時後續設置失效,因為你都定主題瞭,怎麼還想做其他調整呢?如果要設置線條顏色,背景色,邊界顏色這些,主題就要選擇為None,其餘的顏色設置自己摸索吧,不會就參看get_theme命令。
  • 第三行即畫圖命令,theme=theme1來指定主題,blursize和minalpha是調整顏色區塊大小和深淺的,大傢自己調整之後看看效果就知道啦!

其他空間作圖

當然,如果你覺得這種方式不夠美觀,又想將空間數據以較美觀的方式呈現,你也可以嘗試空間分位圖,推薦軟件GeoDa和Stata,當然R也可以畫,但是會非常難看。這裡上一張stata的直出圖:

stata命令非常簡單,畫這一張圖隻用瞭一行命令,但是你需要.shp文件,即地理坐標數據文件,該數據在世界地理信息網站上可以免費下載到。

GeoDa是一款專門做界面空間計量的軟件,能夠以界面的方式繪制各種空間圖形,非常好用,但是也有其分析的局限性。

當然不能忘瞭還有ArcGis地理信息系統,這個太強大瞭。

到此這篇關於R語言繪制空間熱力圖實例講解的文章就介紹到這瞭,更多相關R語言繪制空間熱力圖內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: