R语言ggplot2地理信息可视化(下)
很荣幸,能来北京参加2018年第十一届中国R会议,并在中国人民大学-R语言数据可视化会场作报告。
本次演讲题目:《R语言ggplot2之地理信息可视化》,本次演讲重点讲解R语言基于ggplot2包的地理信息可视化,先介绍不同的地图投影模式,讲解世界地图、美国和英国等世界各国、中国(包括省级、市级到县级不同的行政单位)、局部地图等,地图数据的获取与绘制,特别会讲解标准中国和美国地图的绘制;再接着讲解不同的地图类型,包括等值区间地图、带散点、气泡、柱形、饼图和连接线的地图、等位地图、地铁线路图等。
本次演讲只讲解地理空间数据可视化部分,此部分也被收录在我的新书《R语言数据可视化之美》中,敬请期待。
本次内容相对来说,有点多,我拆成两部分推送给大家:地图等级和地图类型。关于地图等级部分的内容请见:
R语言ggplot2地理信息可视化(上)
这次就介绍地图类型的部分。
点描法地图
点描法地图(DotMap, 点分布地图DotDistribution Map, 点密度地图Dot Density Map)是一种通过在地理背景上绘制相同大小的点来表示数据在地理空间上分布的方法。点数据描述的对象是地理空间中离散的点,具有经度和纬度的坐标,但是不具备大小的信息,比如某区域内的餐馆、公司分布等。
在R语言中先使用geom_polygon()函数绘制地图,再使用geom_point()函数在地图图层上就可以绘制散点数据。
沃罗诺伊地图
沃罗诺伊图(VoronoiDiagram,也称作又叫狄利克雷镶嵌(Dirichlettessellation)或者泰森多边形(Thiessen polygon)是由俄国数学家格奥尔吉·沃罗诺伊建立的空间分割算法。
沃罗诺伊图解决的问题实际上就是基于一组特定点将平面分割成不同区域,而每一区域又仅包含唯一的特定点,并且该区域内任意位置到该特定点的距离比到其它的特定点都要更近。特别适用于如分析星巴克咖啡、7-11便利店等的最大覆盖区域。
带气泡的地图
带气泡的地图(BubbleMap),其实就是气泡图和地图的结合,根据数据(lat,long,value)在地图上绘制气泡。位置信息(lat,long)对应到地图的具体地理位置,数据的大小value映射到气泡面积大小,有时候还存在第四维类别变量catergory,可以使用颜色区分数据系列。
带气泡的地图比分级统计图更适用于比较带地理信息的数据的大小,但是当地图上的气泡过多过大时,气泡间会相互遮盖而影响数据展示。所以在绘制时需要考虑设定气泡的透明度。
带柱形的地图
带柱形的地图(BarMap)是柱形图和地图的组合,可以用柱形系列表示地理位置的一系列数据指标,柱形的高度对应指标的数据,不同的指标使用不同的颜色区分。
在R语言中,可以使用geom_polygon()函数绘制地图,geom_rect()函数绘制柱形数据,geom_text()函数添加数据标签。
带饼图的地图
带饼图的地图(PieMap)是饼图和地图的组合,可以用饼图系列表示地理位置的一系列类别的数值占比情况,饼图的占比对应类别的数据,不同的类别也可以使用不同的颜色区分。
R语言scatterpie包的geom_scatterpie()函数可以绘制散点复合饼图和气泡复合饼图。先使用geom_polygon()函数绘制地图,再使用geom_scatterpie()函数在地图图层上就可以绘制散点复合饼图或者气泡复合饼图。
带连接线的地图
在地理空间数据中,线数据通常指连接两个或更多点的线段或者路径。线数据具有长度属性,即所经过的地理距离。常见的线数据可视化方法包括连接地图和流向地图。
连接地图 (Connection Map) 是用直线或曲线连接地图上不同地点的一种图表。虽然连接地图非常适合用来显示地理连接和关系,但我们也可使用单一连接链路来显示地图路线。此外,通过研究连接地图上的连接分布或集中程度,我们也可以用它来显示空间格局。
在R中geosphere包的geosphere()函数可以计算两地的中间路线的插值,再使用geom_path()可以绘制线条。
流向地图(FlowMap) 在地图上显示信息或物体从一个位置到另一个位置的移动及其数量,通常用来显示人物、动物和产品的迁移数据。单一流向线所代表的移动规模或数量由其粗细程度表示,有助显示迁移活动的地理分布。
在R中geosphere包的geosphere()函数可以计算两地的中间路线的插值,再使用geom_path()可以绘制线条,单一流向线所代表的移动规模或数量映射到线条的粗细size。
欢迎大家加入EasyCharts-QQ群
如需转载请联系EasyCharts团队!
猜你喜欢
10000+:菌群分析 宝宝与猫狗 梅毒狂想曲 提DNA发Nature Cell专刊 肠道指挥大脑
系列教程:微生物组入门 Biostar 微生物组 宏基因组
专业技能:学术图表 高分文章 生信宝典 不可或缺的人
一文读懂:宏基因组 寄生虫益处 进化树
必备技能:提问 搜索 Endnote
文献阅读 热心肠 SemanticScholar Geenmedical
扩增子分析:图表解读 分析流程 统计绘图
16S功能预测 PICRUSt FAPROTAX Bugbase Tax4Fun
在线工具:16S预测培养基 生信绘图
科研经验:云笔记 云协作 公众号
编程模板: Shell R Perl
生物科普: 肠道细菌 人体上的生命 生命大跃进 细胞暗战 人体奥秘
写在后面
为鼓励读者交流、快速解决科研困难,我们建立了“宏基因组”专业讨论群,目前己有国内外5000+ 一线科研人员加入。参与讨论,获得专业解答,欢迎分享此文至朋友圈,并扫码加主编好友带你入群,务必备注“姓名-单位-研究方向-职称/年级”。PI请明示身份,另有海内外微生物相关PI群供大佬合作交流。技术问题寻求帮助,首先阅读《如何优雅的提问》学习解决问题思路,仍未解决群内讨论,问题不私聊,帮助同行。
学习16S扩增子、宏基因组科研思路和分析实战,关注“宏基因组”
R语言ggplot2地理信息可视化(下)相关推荐
- R语言ggplot2地理信息可视化(上)
很荣幸,能来北京参加2018年第十一届中国R会议,并在中国人民大学-R语言数据可视化会场作报告. 本次演讲题目:<R语言ggplot2之地理信息可视化>,本次演讲重点讲解R语言基于ggpl ...
- R语言ggplot2在可视化图像中添加横线并在横线中添加文本、为横线中添加的文本添加文本框、自定义文本框的填充色(background color for a text annotation)
R语言ggplot2在可视化图像中添加横线并在横线中添加文本.为横线中添加的文本添加文本框.自定义文本框的填充色(background color for a text annotation) 目录
- R语言ggplot2时间序列可视化并在特定日期处添加竖线实战
R语言ggplot2时间序列可视化并在特定日期处添加竖线实战 目录 R语言ggplot2时间序列可视化并在特定日期处添加竖线实战 #仿真数据</
- R语言ggplot2数据可视化
R数据科学1_进阶 第一部分 探索 第1章 使用ggplot2进行数据可视化 1.3 图形属性映射 1.4 常见问题 1.5 分面 1.6 几何对象 1.7 统计变换 1.8 位置调整 1.9 坐标系 ...
- R语言ggplot2可视化密度图(density plot)、改变密度图下的填充色实战
R语言ggplot2可视化密度图(density plot).改变密度图下的填充色实战 目录 R语言ggplot2可视化密度图(density plot).改变密度图下的填充色实战
- R语言ggplot2可视化绘制一头奶牛、Linux下使用cowsay打印奶牛(cow)
R语言ggplot2可视化绘制一头奶牛.Linux下使用cowsay打印奶牛(cow) 目录 R语言ggplot2可视化绘制一头奶牛.Linux下使用cowsay打印奶牛
- R语言ggplot2可视化交互作用图(Interaction Plot):可视化不同分组(分类变量1)在不同剂量下(分类变量2)的箱图(box plot)、均值计算并连接成线图(line plot)
R语言ggplot2可视化交互作用图(Interaction Plot):可视化不同分组(分类变量1)在不同剂量下(分类变量2)的箱图(box plot).均值计算并连接成线图(line plot) ...
- R语言ggplot2可视化分组变量下的数据分布(线条、色彩配置)、WVPlots包的ShadowHist函数比较分组下的数据直方图、ggplot2分面图facet_wrap可视化分组变量下的数据分布
R语言ggplot2可视化分组变量下的数据分布(线条.色彩配置).WVPlots包的ShadowHist函数比较分组下的数据直方图.ggplot2分面图facet_wrap可视化分组变量下的数据分布 ...
- 数据可视化——R语言ggplot2包绘制相关矩阵为热图
数据可视化--R语言ggplot2包绘制相关矩阵为热图 概述:R语言软件和数据可视化--ggplot2快速绘制相关矩阵为热图.本文翻译了一篇英文博客,博客原文链接:http://www.sthda.c ...
最新文章
- 用 namspace 隔离 DHCP 服务 - 每天5分钟玩转 OpenStack(90)
- C++:=default一些说明
- 【Qt串口波形绘图】基于QCustomPlot的串口波形绘图上位机,源码开放
- 相对定向绝对定向 MFC 实现 CSU摄影测量学
- matlab基础视频教程解压密码,价值上千元的MATLAB基础视频教程附源码请收下!
- 软件工程知识点总结(含各类软件工程各类图的画法)
- idea 安装uml 画图工具
- 苹果手机查看mysql_教你苹果手机怎么查几个月或多天以前的通话记录
- H3CNE《第1章 计算机网络概述》
- 处理各种压力(情绪、家庭)时,需要注意什么!
- QT环境搭建及常见错误
- web -【在线聊天】
- 解决Mac苹果笔记本键盘背光灯不亮的问题
- 仿新浪微博的插入#话题#
- 刘东明微信营销二十五式初探(一)
- 无线调试和unable to connect to 192.168.2.245:5555由于目标计算机积极拒绝,无法连接。 (10061)
- H3CV7交换机软件版本升级方法
- 元宇宙再怎么火也脱离不了数据
- Mobl——用于创建HTML移动应用程序的新DSL
- SPSS,SAS,stata等多种统计软件对比
热门文章
- 谷歌员工论坛自述引程序员羡慕,只招募最优秀的人,薪资福利超棒
- 程序员的日常大揭露,太真实了!
- 面试官:说说你对ZooKeeper集群与Leader选举的理解?
- Java 分布式系统下的 9 点设计与实现
- 2020中国规模化敏捷大会-报名进行时
- 1、存在如下数列1、1、2、4、7、13、24、44、81、149......现要求该数列第n项的值(n从O开始算)。 	程序运行结果: 	1/2 	输入:4 	输出:7 	输入:9 	输出:149
- C++中拷贝控制操作(三/五法则)
- Anchor-free目标检测 | 工业应用更友好的新网络(附大量相关论文下载)
- 基于深度学习方式的点云处理算法汇总
- SA-SSD:阿里达摩院最新3D检测力作(CVPR2020)