R语言ggplot2地理信息可视化(下)
很荣幸,能来北京参加2018年第十一届中国R会议,并在中国人民大学-R语言数据可视化会场作报告。
本次演讲题目:《R语言ggplot2之地理信息可视化》,本次演讲重点讲解R语言基于ggplot2包的地理信息可视化,先介绍不同的地图投影模式,讲解世界地图、美国和英国等世界各国、中国(包括省级、市级到县级不同的行政单位)、局部地图等,地图数据的获取与绘制,特别会讲解标准中国和美国地图的绘制;再接着讲解不同的地图类型,包括等值区间地图、带散点、气泡、柱形、饼图和连接线的地图、等位地图、地铁线路图等。
本次演讲只讲解地理空间数据可视化部分,此部分也被收录在我的新书《R语言数据可视化之美》中,敬请期待。
本次内容相对来说,有点多,我拆成两部分推送给大家:地图等级和地图类型。关于地图等级部分的内容请见:
这次就介绍地图类型的部分。
点描法地图
点描法地图(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。