• R语言绘制空间热力图


    先上图

    R语言的REmap包拥有非常强大的空间热力图以及空间迁移图功能,里面内置了国内外诸多城市坐标数据,使用起来方便快捷。

    开始

    首先安装相关包

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

    我们来试试其强大的城市坐标获取功能

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

    我们可以得到如下表结果,即上海和北京两所城市的经纬度坐标,这样写可以看出,无论输入汉语拼音“beijing”或是汉语“上海”,都是可以被识别的。

    [egin{array}{c|ccc} id & ext{lon} & ext{lat} & ext{city} \ hline 1 & 116.413554 & 39.911013 & beijing \ 120 & 121.480237 & 31.236305 & 上海 \ end{array} ]

    拿到数据该怎么办

    那么,但你拿到一份“城市-指标”数据,如何画出该指标的空间热力图呢?我这边给大家示范一份自己的问卷数据QuesData,部分数据见下表:

    [egin{array}{cc} ext{city} & ext{value} \ hline 上海 & 95 \ 大同 & 36 \ 北京 & 19 \ 合肥 & 14 \ 泰安 & 12 \ end{array} ]

    面对以上整理好的数据,我们做出如下处理:

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

    得到我们想要的数据如下:

    [egin{array}{ccc} ext{lon} & ext{lat} & ext{value} \ hline 116.413554 & 39.911013 & 19 \ 121.480237 & 31.236305 & 95 \ end{array} ]

    数据处理完后便可以直接绘图了

    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是一款专门做界面空间计量的软件,能够以界面的方式绘制各种空间图形,非常好用,但是也有其分析的局限性。

    当然不能忘了还有ArcGis地理信息系统,这个太强大了,,,不知道该说啥。。。

  • 相关阅读:
    使用Boost Regex 的regex_search进行遍历搜索
    最全的libcurl库资源整理
    curl的http上传文件代码
    boost::property_tree读取解析ini文件--推荐
    UrlDecode
    C++、VC++、MFC网页自动注册、登陆、发帖、留言,QQ注册、QQ申请器源码、注册邮箱源码、自动发帖源码
    DUILIB入门简明教程
    MFC/VC CxImage 简单配置与使用 (完整版)
    几款国产开源的Windows界面库
    C++文件读写详解(ofstream,ifstream,fstream)
  • 原文地址:https://www.cnblogs.com/yangruiGB2312/p/5898628.html
Copyright © 2020-2023  润新知