H58|R语言可以这么玩 | 绘制地图与地点数据可视化(附R语言数数据分析实战)(3月21日20:00限时免费)

Posted 智能江湖

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了H58|R语言可以这么玩 | 绘制地图与地点数据可视化(附R语言数数据分析实战)(3月21日20:00限时免费)相关的知识,希望对你有一定的参考价值。

“Hello 我 是 大 白,愿 携 手 共 闯 智 能 江 湖 ”

Z     i   N   e   n   g   J   i   a   n   g   H   u

H58|R语言可以这么玩 | 绘制地图与地点数据可视化(附R语言数数据分析实战)(3月21日20:00限时免费)


小蟹君今天又来给大家介绍R的玩法了。这次,我们用R来画地图吧,利用可视化工具,我们更能轻松地得出结论哦~


R语言里的ggmap包是绘制地图的利器。在确保电脑可以上外网的情况下(为了保证进入google地图的URL),ggmap包帮助我们轻松下载google map,再加上和ggplot2制图包的叠加,可以轻松、方便地绘制可视化地图。

 

ggmap包中最常用的函数是ggmap(),该函数用于从网上下载地图。函数基本构成为:

 ggmap(get_googlemap(center=c(lon=-95.3632715,lat=29.7632836),zoom=3,maptype='terrain'))

 

其中,get_googlemap表示从网上获取google地图,center表示地图中心,

zoom表示地图缩放程度,

maptype表示地图种类,可选参数为:’terrain’(地形图)、’satellite’(卫星图)、’roadmap’(道路图)、’hybrid’(混合图)。

配合ggplot包的geom_point()描点函数,我们可以在地图上绘制数据点集。


介绍好了基本函数、小蟹君就带你们一起玩起来啦!~


1、动态地图绘制——以地震数据为例

小蟹君从网上获取了一个世界各地的地震数据集,记录了地震发生的年份、经纬度、震级等指标。利用这部分数据,可以做出不同年份地震发生的动态地图。

想要绘制动态地图,还需要在电脑上安装ImageMagick软件,该软件的功能是将数张静态图组合成为1张gif动态图。在R语言中,animation包可以完成ImageMagick软件与R语言的交互,只需数行代码便可实现动态图的绘制。

在加载了ggmap包、ggplot包、animation包之后,小蟹君尝试绘制了美洲地震分布图:

H58|R语言可以这么玩 | 绘制地图与地点数据可视化(附R语言数数据分析实战)(3月21日20:00限时免费)

▲美洲地震分布带


结论:如图所示的动态地图展示了70年代美洲部分地区地震发生地点的变化,点的大小反映地震发生的等级大小。不难发现,地震频发地区为西部临海地区,内陆地区基本不在地震带上。另外海里也时常有地震发生。


现在,让我们再把目光转移到中国上。

H58|R语言可以这么玩 | 绘制地图与地点数据可视化(附R语言数数据分析实战)(3月21日20:00限时免费)

▲中国地震分布带(1990-2016)


结论:上面这张动态地图展示了1990年至2016年地震发生的区域。中国东西部差别很大,西部地震频发,而东部几乎没有地震发生。值得注意的是,台湾成为了中国。最频发地震的地区,这也印证了处于各大板块相互作用的边界地区是地震带的主要分布区域。


我们截取了一张2008年的中国地震分布图,

可以看到有一串明显的红点分布在四川汶川附近

H58|R语言可以这么玩 | 绘制地图与地点数据可视化(附R语言数数据分析实战)(3月21日20:00限时免费)


2、获取指定地点的经纬度并绘制于地图

ggmap包的强大之处在于它不仅可以获取诸如地形图、卫星图、道路图等多种形式的地图,它还支持给定一个地点名称,计算其经纬度。使用geocode()函数,括号内的参数可以是任意地点名称,函数为我们返回此地点的经纬度。利用这个信息,我们可以轻松地在地图上标注出我们想要标注的地点。


小蟹君以上海各大学的分布图为例给大家展示一下这个功能~

首先获取上海20所大学的英文名称,并把它保存在一个数据框中。可以利用循环函数一次性返回20所大学所处的经纬度,再把它们同时标注在上海道路地图上就好了!

下图是小蟹君得到的结果:

H58|R语言可以这么玩 | 绘制地图与地点数据可视化(附R语言数数据分析实战)(3月21日20:00限时免费)

▲上海20所高校分布图


地图中的每个红点代表一个大学。我们发现,有6所大学分布在上海郊区的位置,这些大学的同学们生活还真是不太方便呢~此外,位于市区里的学校似乎呈现“扎堆”分布的现象,我们把地图放大了看(通过设置zoom参数可以实现地图的缩放):

H58|R语言可以这么玩 | 绘制地图与地点数据可视化(附R语言数数据分析实战)(3月21日20:00限时免费)

▲上海市高校分布图


哇,原来上海高校是集群分布的,东北方向一群,西南方向一群,同学们之间交流感情很方便呢~



3、计算两地间距离

最后,小蟹君给大家介绍ggmap包中的另一个有趣的函数,mapdist()。函数的结构如下:

mapdist(from, to, mode = c("driving", "walking", "bicycling"),output = c("simple", "all"))

这个函数可以计算两地之间的距离,并且在给定交通方式”mode”下,可以计算从一地出发前往另外一地的所需时间。比如我们想计算复旦大学到上海交通大学的距离和路途时间,则用:

mapdist(“Fudan University”,”Shanghai Jiaotong University”,mode=”driving”),得到结果:

H58|R语言可以这么玩 | 绘制地图与地点数据可视化(附R语言数数据分析实战)(3月21日20:00限时免费)

于是我们知道从复旦大学到上海交通大学,路程是43公里,开车的话需要48分钟左右哦。





本期福利:R语言数数据分析实战


课程重点

资料目录

1.R语言的介绍和学习资源
2.R语言相关程序.的安装
3.R语言版本的更新流程
4.R语言快速入门
5.R语言之数据对象
6.R语言之向量化计算
7.R语言之函数与控制语句
8.R语言之本地文档读写
9.R语言之web数据获取
10.R语言之数据变换
11.R语言-数据汇总
12.R语言之字符串操作
13.R语言之时间数据操作
14.R语言之绘图函数
15.R语言之单变量处理
16.R语言之占比作图
17.R语言之多变量作图
18.R语言之时间和空间作图方式讲解
19.R语言之概率分布
20.R语言之假设检验
21.R语言之线性回归
22.R语言之多元线性回归
23.R语言之主成份分析
24.R语言之Logistic回归
25.R语言之数据挖掘流程
26.R语言之聚类分析
27.R语言之决策树等分类算法

资料截图

【领取方式】


以上是关于H58|R语言可以这么玩 | 绘制地图与地点数据可视化(附R语言数数据分析实战)(3月21日20:00限时免费)的主要内容,如果未能解决你的问题,请参考以下文章

数据可视化应用绘制双变量映射地图(附R语言代码)

数据可视化应用绘制“变形”地图(附R语言代码)

R语言可以这么玩 |可视化中文分词和词频统计!~

数据可视化应用绘制峰峦地图(附Python和R语言代码)

案例演示 R语言绘制热图代码

【R语言】绘制误差线图+数据分布+显著性分析