R语言绘制空间热力图-程序员宅基地

技术标签: r语言  

先上图
998084-20160923082714934-627691305.png

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

开始

首先安装相关包

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

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

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

我们可以得到如下表结果,即上海和北京两所城市的经纬度坐标,这样写可以看出,无论输入汉语拼音“beijing”或是汉语“上海”,都是可以被识别的。
\[ \begin{array}{c|ccc} id & \text{lon} & \text{lat} & \text{city} \\ \hline 1 & 116.413554 & 39.911013 & beijing \\ 120 & 121.480237 & 31.236305 & 上海 \\ \end{array} \]

拿到数据该怎么办

那么,但你拿到一份“城市-指标”数据,如何画出该指标的空间热力图呢?我这边给大家示范一份自己的问卷数据QuesData,部分数据见下表:
\[ \begin{array}{cc} \text{city} & \text{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)

得到我们想要的数据如下:
\[ \begin{array}{ccc} \text{lon} & \text{lat} & \text{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是调整颜色区块大小和深浅的,大家自己调整之后看看效果就知道啦!
    最终得到一开始那幅图,需要数据的请发送邮件至 [email protected]~

其他空间作图

当然,如果你觉得这种方式不够美观,又想将空间数据以较美观的方式呈现,你也可以尝试空间分位图,推荐软件GeoDa和Stata,当然R也可以画,但是会非常难看。这里上一张stata的直出图:
998084-20160923090528902-62065964.png
stata命令非常简单,画这一张图只用了一行命令,但是你需要.shp文件,即地理坐标数据文件,该数据在世界地理信息网站上可以免费下载到。

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

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

转载于:https://www.cnblogs.com/yangruiGB2312/p/5898628.html

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_30457551/article/details/95357312

智能推荐

sparkSql catalyst优化器-程序员宅基地

文章浏览阅读300次。2019独角兽企业重金招聘Python工程师标准>>> ..._sparksql 优化器 估算结果集

习题2-3 求平方与倒数序列的部分和 (15分)-程序员宅基地

文章浏览阅读128次。本题要求对两个正整数m和n(m≤n)编写程序,计算序列和m​2​​ +1/m+(m+1)​2​​ +1/(m+1)+⋯+n​2​​ +1/n。输入格式:输入在一行中给出两个正整数m和n(m≤n),其间以空格分开。输出格式:在一行中按照“sum = S”的格式输出部分和的值S,精确到小数点后六位。题目保证计算结果不超过双精度范围。输入样例:5 10输出样例:sum = 355.845635#include<stdio.h>int main(){ int m,n;_习题2-3 求平方与倒数序列的部分和 (15分)

Loadrunner的IP欺骗(含图)_loadrunner作假图-程序员宅基地

文章浏览阅读1k次。转载出处:http://www.51testing.com/?41972使用loadrunner进行IP欺骗首先要注意以下两点:1、 本地的IP设置不能为“自动获取”,必须指定一个静态IP如果本地是动态获取IP,在运行IP Wizard时会弹出提示:The IP_loadrunner作假图

OpenCV-Python 中文教程_opencv-python中文教程-程序员宅基地

文章浏览阅读2.1k次,点赞8次,收藏37次。OpenCV-Python 中文教程索引目录 I 走进 OpenCV 10详细目录I 走进 OpenCV 101 关于 OpenCV-Python 教程 102 在 在 Windows 上安装 OpenCV-Python 113 在 在 Fedora 上安装 OpenCV-Python 12II OpenCV 中的 Gui 特性 134 图片 134.1 读入图像 . . . . . . . . . . . . . . . . . . . . . . . . . . . . ._opencv-python中文教程

日文半角转全角 java_java将日文半角片假名转成全角的方法-程序员宅基地

文章浏览阅读1.2k次。package samples.string.japanese;public class StringUtil {private static final char[] HANKAKU_KATAKANA = { '。', '「', '」', '、', '・','ヲ', 'ァ', 'ィ', 'ゥ', 'ェ', 'ォ', 'ャ', 'ュ', 'ョ', 'ッ', 'ー', 'ア', 'イ','ウ', '..._半角日文转全角日文 java

【自学指南】Python爬虫的四个水平,你修炼到了哪个层次?_爬虫层级-程序员宅基地

文章浏览阅读1.7k次。【自学指南】Python爬虫的四个水平,你修炼到了哪个层次?_爬虫层级

随便推点

esp32 io速度_Adafruit HUZZAH32-ESP32Feather的说明-程序员宅基地

文章浏览阅读661次。概述是的,是您一直在等待的羽毛!HUZZAH32是我们基于ESP32的Feather,使用官方WROOM32模块制成。我们打包了您喜欢的所有有关Feathers的东西:内置USB到串行转换器,自动引导程序重置,锂离子/聚合物充电器以及所有带出的GPIO,因此您可以将其与我们的FeatherWings一起使用。位于该Feather末尾的模块包含一个双核ESP32芯片,4MB的SPIFlash,调谐的..._.pio/libdeps/featheresp32/adafruit busio/adafruit_spidevice.h:9:10: fatal er

电商购物核心功能测试点_中慧 电子商城功能测试-程序员宅基地

文章浏览阅读1.4w次,点赞28次,收藏229次。这份是根据电商中所涉及的业务点整理出的核心功能测试点,更多的偏向于功能性的测试。其后所涉及到的性能测试、压力测试、集成测试等,会在进一步分析,作为一名产品经理应该了解到这部分知识点。..._中慧 电子商城功能测试

语义网络,语义网,链接数据和知识图谱_语义网 图数据库-程序员宅基地

文章浏览阅读7.1k次。前一篇文章“为什么需要知识图谱?什么是知识图谱?——KG的前世今生”提及了和知识图谱相关的一些早期概念。为了让读者能够更好地区分这些概念,以及更好地在整体上把握知识谱图发展过程,本文将对这些概念作一个更为详细的介绍。一、语义网络(Semantic Network)对于初学者来讲,这个概念很容易和..._语义网 图数据库

scala 之 map 操作史上最全_scala map添加元素-程序员宅基地

文章浏览阅读4.6w次,点赞11次,收藏75次。Map(映射)是一种可迭代的键值对(key/value)结构。所有的值都可以通过键来获取。Map 中的键都是唯一的。Map 也叫哈希表(Hash tables)。Map 有两种类型,可变与不可变,区别在于可变对象可以修改它,而不可变对象不可以。默认情况下 Scala 使用不可变 Map。如果你需要使用可变集合,你需要显式的引入 import scala.collection.mutabl..._scala map添加元素

AI时间线:探索人工智能历史的智能工具-程序员宅基地

文章浏览阅读360次,点赞5次,收藏9次。AI时间线:探索人工智能历史的智能工具项目地址:https://gitcode.com/zhugezifang/ai_timeline项目简介AI时间线 是一个精心设计的在线平台,旨在帮助用户深入理解和探索人工智能领域的历史、发展与里程碑事件。它通过可视化的方式,展示了从早期概念提出到最新技术突破的关键信息,为学者、学生和AI爱好者提供了一个互动的学习资源。技术分析该项目基于Web技术实...

python随机生成列表的五种方法,数据库开发面试自我介绍_用随机函数创建一个列表-程序员宅基地

文章浏览阅读848次,点赞23次,收藏9次。Python崛起并且风靡,因为优点多、应用领域广、被大牛们认可。学习 Python 门槛很低,但它的晋级路线很多,通过它你能进入机器学习、数据挖掘、大数据,CS等更加高级的领域。Python可以做网络应用,可以做科学计算,数据分析,可以做网络爬虫,可以做机器学习、自然语言处理、可以写游戏、可以做桌面应用…Python可以做的很多,你需要学好基础,再选择明确的方向。这里给大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!_用随机函数创建一个列表

推荐文章

热门文章

相关标签