R語言繪制空間熱力圖


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.236305citybeijingidlonlatcity1116.41355439.911013beijing120121.48023731.236305上海

 

拿到數據該怎么辦

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

cityvalue9536191412cityvalue上海95大同36北京19合肥14泰安12

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

 

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

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

lon116.413554121.480237lat39.91101331.236305value1995lonlatvalue116.41355439.91101319121.48023731.23630595

 

數據處理完后便可以直接繪圖了

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是調整顏色區塊大小和深淺的,大家自己調整之后看看效果就知道啦!
    最終得到一開始那幅圖,需要數據的請發送郵件至 595403043@qq.com~

其他空間作圖

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

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

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

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM