先上图
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 上海 idlonlatcity1116.41355439.911013beijing120121.48023731.236305 上海那么,但你拿到一份 "城市 - 指标" 数据,如何画出该指标的空间热力图呢?我这边给大家示范一份自己的问卷数据 QuesData,部分数据见下表:
city 上海大同北京合肥泰安 value9536191412cityvalue 上海 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)
当然,如果你觉得这种方式不够美观,又想将空间数据以较美观的方式呈现,你也可以尝试空间分位图,推荐软件 GeoDa 和 Stata,当然 R 也可以画,但是会非常难看。这里上一张 stata 的直出图:
stata 命令非常简单,画这一张图只用了一行命令,但是你需要. shp 文件,即地理坐标数据文件,该数据在网站上可以免费下载到。
GeoDa 是一款专门做界面空间计量的软件,能够以界面的方式绘制各种空间图形,非常好用,但是也有其分析的局限
来源: http://www.bubuko.com/infodetail-1971036.html