本文将给大家介绍一个ggplot2灰常牛X的可视化扩展包,我将该包主页的包用法介绍整理成中文,分享给大家。
包名叫geofacet,有经验的charter大概能猜出来个大概,没错该包是关于可视化数据中的地理信息,以及维度分面。
作者命名非常讲究,将该包的两个主要核心功能进行组合命名。
地理信息可视化分面,这么吊的包你肯定是第一次看到吧(其实之前介绍过一些地图上的mini 柱形图、饼图等都算这一类),但是这里的分面功能做的更加彻底,作者还是遵循惯例,将这种基于地理信息分面的可视化功能对接了ggplot2,并以分面函数facet_geo()的形式呈现。
这样了解ggplot2的用户学习成本就低了很多,因为只需了解这个分面参数的具体设定,组织对应数据源格式就OK了。
以下是本文的主要内容:
geofacet包扩展了ggplot2的分面函数,进而提供了基于地理信息的更加灵活的数据可视化方案。这个分面函数并无特别指出,如同内置的分面函数(facet_grid、facet_wrap等)用法没有太大差别。唯一的区别是,在最终的图形版面呈现结果上,允许单个图表分面刻画在对应的地理多边形中心位置。
该包的核心功能可以概括为以下几点:
每一个分面单元格都可以呈现一个维度的数据(而非单个数值);
每一个分面单元格可以容纳任何一种ggplot2内置图表对象(看清楚了,是任何一种,任何一种,任何一种,就问你这包屌不屌!);
分面系统支持任何的地理多边形(可以是内建的,也可以是用户自定义的)。
该包的强大优势绝不仅仅只有以下展示的这些内容,很快我们将会建立一个该包的专属博客(如果建好了会将其网站分享在本页面)。
下载安装:
|
|
使用方法:
该包内的主要函数是facet_geo(),它的用法可以类比ggplot2的内置分面函数facet_warp()\facet_grid()(当然在输出方式上略有不同)。只要你已经熟练掌握了ggplot2语法,那么你就可以轻松搞定这个包。
接下来让我们展示一个例子,该包内置了一个数据集——state_ranks。
这是一个包含美国各州不同社会指标优略程度的数据集(按照排名由低到高排序)。
然后让我们使用geofacet来给每一个州都创造一个柱形图,我仅需使用一个ggplot2内的geom_col()函数即可,至于分面参数,这里我们摒弃使用传统的facet_wrap()分面函数,而是使用geofacet包提供的facet_geo()函数来替代。
定义一个主题:
|
|
案例赏析:
分面柱形图:
geofacet内部重要参数:
- grid参数:可以理解为网格id,可以选择内建的id名称,或者是提供一个自建的已经命名有网格名称的数据框。
- label参数:可以指定任何我们想要指定的变量作为网格显示的标签。
以下是两一个自带数据集的例子:
这一次,我们用来呈现美国季节调整后的失业率随时间的变化。使用对应州名作为对应网格标签。
指定网格非常容易,我们只需提供一个内含地区名称和地区代码的数据框即可。
以下是该包内已经内建好的,我们画图可利用的带地区编码的数据集。
OMG,WAKM ,竟然没有China,这不科学啊(等我弄明白了我亲自给大家做一个)。
接下来是其他国家的几个例子!
欧盟成员国GDP增长情况:
奥地利人口分组可视化:
南非
关于伦敦房价
苏格兰居民牙齿健康程度
印度人口分布
2016年美国总统大选:
换成条形图:
好了就写这几个吧,看完是不是觉得这个包很牛掰啊哈哈哈~_~
我也是被他给惊艳到才立马写出来分享给大家,不过可惜的是这些只能使用内建数据,如果你要呈现的地域包含在内建的地区里面,应该是可以用的,但是内部没有定义的地区编码,需要自己使用JS编辑器定义、提交、审核,灰常麻烦,但是我有信心把源码搞明白,然后写一套可以自定义的地区分面系统。(不知道要猴年马月才能出来哈哈哈~)
联系方式:
wechat:ljty1991
Mail:578708965@qq.com
个人公众号:数据小魔方(datamofang)
团队公众号:EasyCharts
qq交流群:[魔方学院]298236508
个人简介:
杜雨
财经专业研究僧;
伪数据可视化达人;
文科背景的编程小白;
喜欢研究商务图表与地理信息数据可视化,爱倒腾PowerBI、SAP DashBoard、Tableau、R ggplot2、Think-cell chart等诸如此类的数据可视化软件,创建并运营微信公众号“数据小魔方”。
Mail:578708965@qq.com
备注信息:
本作品采用知识共享署名-非商业性使用 4.0 国际许可协议进行许可。