Tableau 作为一款数据可视化分析工具,能够将我们的数据通过各种美观的图形呈现出来,除了软件中 “智能显示” 提供的图形模板之外,我们还可以通过它的各种功能制作出更加复杂也更加有价值的图表。

今天,我们以桑基图为例,为大家展示如何借助 Tableau 的计算函数和其他功能,制作出模板中没有的图形。

桑基图(Sankey diagram),是一种特定类型的流程图,图中延伸的分支的宽度对应数据流量的大小,通常应用于能源、材料成分、金融等数据的可视化分析。桑基图最明显的特征就是,始末端的分支宽度总和相等,即所有主支宽度的总和应与所有分出去的分支宽度的总和相等,保持能量的平衡。

Tableau 中的桑基图什么样子呢,我们举个例子,见下图,这是 Tableau public 上的优秀作品,清晰的表现了人类迁徙的流向和数量,那么本文我们重点讲述中间这一部分流线的做法。




python绘制桑基图 桑基图用什么软件做_数据源


为了方便大家学习,我们仍旧以 Tableau 系统自带的 “示例—超市” 数据源为例。

与此同时,为了呈现这种图形结构,我们需要手动制作一个辅助数据源。该数据源分为两列,第一列输入字符串 Link,第二列为坐标,以 0.5 为步长,取出 -8 到 8 之间的所有数字。最后,我们还需要在 “示例—超市” 中也插入一列,输入字符串 Link。

两个数据文件如下图:


python绘制桑基图 桑基图用什么软件做_字段_02


python绘制桑基图 桑基图用什么软件做_数据源_03


接下来,我们把两个数据源依次连入 Tableau 中,以 Link 字段为关联字段,建立起内关联关系。


python绘制桑基图 桑基图用什么软件做_python绘制桑基图_04


拥有数据源之后,我们先要对数据进行处理,创建以下字段:


python绘制桑基图 桑基图用什么软件做_字符串_05


python绘制桑基图 桑基图用什么软件做_hikari如何切换数据源_06


python绘制桑基图 桑基图用什么软件做_python绘制桑基图_07


python绘制桑基图 桑基图用什么软件做_字符串_08


最后,我们来把 “创建坐标” 字段放至列,把 “坐标” 字段放至行,并将这两个字段切换为维度。此时,视图中已经出现了桑基图的雏形,我们再把标记类型改为线,把 “子类别” 字段拖入详细信息。到这里,一张桑基图的核心就已经制作完成了。

我们可以再向视图中添加其他字段,使其更加的丰富和美观,比如,我们来把 “类别” 拖至颜色,把 “数量” 拖至大小,如下图所示:


python绘制桑基图 桑基图用什么软件做_字段_09


在此图中,完整的表现了每一个产品大类下,各个产品子类别的销售数量分布,大家可以发挥自己的创意,将这只视图拼接到仪表板中,使用文字云或柱图等等其他图形,来对该视图进行最后的完善。