在学习tableau的过程中,我经常会看到一类很玄幻的图形(如下所示),让我深深感受到tableau的强大,后来知道这种图形叫桑基图。
桑基图(Sankey diagram):即桑基能量分流图,也叫桑基能量平衡图。它是一种特定类型的流程图,图中延伸的分支的宽度对应数据流量的大小,通常应用于能源、材料成分、金融等数据的可视化分析。桑基图最明显的特征就是,始末端的分支宽度总和相等,即所有主支宽度的总和应与所有分出去的分支宽度的总和相等,保持能量的平衡。
在刚接触tableau的那段时间,我也想自己做一个桑基图出来炫一下,结果随便看了一下教程,发现该图的制作并不简单,很多函数和技巧让我云里雾里,随着学习tableau的逐渐深入,经过一段时间折腾,终于基本学会了桑基图,最终创建结果如下所示:
本节记录要点:
- 桑基图创建路径
- 桑基图创建步骤
桑基图创建路径
在tableau中创建的桑基图,实际上是由两个堆叠条形图及一个连线图组成。
要创建桑基图,有两种路径:
一种是对源数据进行二次整理和加工,将其转换为合适的数据格式,再在此基础上进行创建。这样做的好处是可以大幅提升桑基图的创建效率,降低创建的复杂性,但前提是必须对源数据进行处理,如果源数据非常大,或者不能直接获取和加工源数据,这种路径难以奏效。
另一种则是直接使用源数据,通过各种计算字段的应用,来达到创建桑基图的目的。与第一种正好相反,这样做的好处是不需要提前处理源数据,有广泛的适应性,但随之而来的则是创建过程较为复杂,创建效率相对较低。
在学习过程中,通过度娘搜索到的tableau创建桑基图教程,基本都是第一种创建路径,首先要对源数据进行加工,一个偶然的机会,看到了国外有大神采用第二种路径创建桑基图,虽然复杂,但对源数据却没有太多要求,于是我就对照该大神的方法,也学着创建了一个桑基图,今天这篇文章,就是基于这次学习的一个记录。
桑基图创建步骤
这里总共分为三个大的步骤:
- 创建连线图
- 创建堆积条形图
- 创建仪表板
创建连线图
这是桑基图的核心步骤,具体分为8个小步骤:
- 创建交互参数、维度和度量
- 创建路径相关字段
- 创建连线相关字段
- 顶部线条计算
- 底部线条计算
- 多边形计算
- 准备视图
- 设置“多边形”
1.创建交互参数、维度和度量
tableau创建的桑基图,可以通过视图交互来观察不同维度之间的数据流向情况,因此,首先需要创建用于视图交互的辅助维度、度量和参数。
Step01 创建“参数”:创建“选择1”和“选择2”参数,具体表现为视图交互中的下拉列表。“选择1”参数的具体设置如下所示,对于“选择2”参数,除“名称”和“当前值”可以与“选择1”不一样外,其余内容均相同。
Step02 创建“维度”:创建“维度1”和“维度2”计算字段,用于视图交互时,将参数交互的结果传递到后端的各个函数,确保视图能够根据交互结果动态变化。“维度1”和“维度2”计算字段的设置如下所示。