数据可视化之美:桑基图的前世今生
我们经常希望通过可视化的数据来表现实体间的流动,比如,来看一下英国国内居民是如何从一个国家移居到另一个国家的。看一看从英格兰迁往北爱尔兰、苏格兰和威尔士的人口数量会很有意思。
从这个桑基图图表可视化中可以明显看出,从英格兰迁移到威尔士的居民多于从苏格兰或北爱尔兰迁移的居民,从威尔士迁移到英格兰的居民多于从苏格兰迁移到英格兰的居民。
什么是桑基图?
桑基图通常描绘从一个实体(或节点)到另一个实体(或节点)的数据流。数据流向的实体被称为节点 ,数据流起源的节点是源节点(例如左侧的英格兰),流结束的节点是目标节点(例如右侧的威尔士),源节点和目标节点通常表示为带有标签的矩形。
流动本身由直线或曲线路径表示,称为链接。链接的宽度与流的量/数量成正比。在上面的例子中,从英格兰到威尔士的流动(即居民迁移)比从英格兰到苏格兰或北爱尔兰的流动(即居民迁移)更广泛(更多),表明迁移到威尔士的居民数量多于其他国家。桑基图可用于表示能量、金钱、成本的流动,以及任何具有流动概念的事物。
米纳尔关于拿破仑入侵俄罗斯的经典图表可能是桑基图表最著名的例子。这种使用桑基图的可视化非常有效地显示了法国军队在前往俄罗斯和返回的途中是如何进步(或减少?)的。
现在,让我们看看如何使用智分析绘制桑基图。
如何绘制桑基图?
下面教一下大家如何绘制桑基图,首先让我们先准备一份某超市的订单数据源。该数据源包含了该超市4年间的订单的详细信息,有订单ID、订单日期、客户名称、产品名称等相关字段。接下来绘制一个桑基图来了解一下这个超市年间的RFM客户流向情况。
制作桑基图的工具有很多,我这里选用的是智分析这个工具,因为操作相对比较简单,而且可以直接导入Excel数据。导入数据源的方法如下,点击数据连接里的Excel文件数据源,读取本地的文件后便可以把数据源上传到智分析里,如果用数据库的话也可以连接数据库去读取数据。
数据上传成功后,要先对数据进行清洗,我这里运用的是智分析的ETL组件,ETL组件是一个非常强大的数据清洗工具,无论是多复杂的数据都可以清洗干净。因为我们这次要观察的是RFM客户流向的情况,所以要在ETL里利用SQL语句制作一个RFM模型,对客户的特征进行判定,详细的制作过程可参考我前面的RFM模型制作文章。
执行完ETL的程序后,最终输出的结果如下,数据集按照年份、起始RFM分类、结束RFM分类、数量的方式进行排列:
制作好了数据集之后,打开智分析的仪表盘,把图形的组件拖拽到仪表盘里,并在智能配图里找到桑基图的图形组件:
把起始RFM分类、结束RFM分类两个字段拖拽到列区,并把数量拖拽到度量区,便可以生成一个还不错的桑基图:
通过生成的桑基图,我们可以清晰地看出这四年间每一个层次的客户流向情况,以便于我们后面采取针对性措施,对每一个层次的客户实行不一样的维护策略。桑基图还可以描述很多现实中的问题,有兴趣的同学不妨好好学习一下这一个强大的可视化图形,并运用到其他的领域里。