外观
桑基图(Sankey diagram)
Sankey Diagrams
许多表格数据分析任务可以解释为多个源实体和目标实体之间的流动。


例如,假设我们有一个体育受欢迎程度数据集,其中列出了某项运动在某个国家的受欢迎指数。在这个数据集中:
- 国家是实体。
- 运动是实体。
- 它们之间流动的信息是受欢迎程度值。
虽然典型的图(如分组柱状图)可以在这里用于了解各国运动的受欢迎程度分布,如下图所示:

……然而,在我看来,桑基图(Sankey diagram)作为一种很酷且优雅的替代方案,在表示此类流动数据集方面脱颖而出:

它们的链接用弧线表示,弧线的宽度与流量值成正比。这极大地简化了数据分析过程。例如,从上面的桑基图中,人们可以迅速推断出:
- 印度最受欢迎的运动是板球。
- 篮球和足球在美国几乎同样受欢迎。
- 篮球在印度和英格兰几乎不受欢迎。
- 英格兰最受欢迎的运动是足球。
- 板球和足球在澳大利亚几乎同样受欢迎。
- 总体而言,足球是这个数据集中最受欢迎的运动。
- 还有许多许多。
想象一下通过查看表格数据或分组柱状图来做到这一点。
- 这个过程会很耗时。
- 你可能会错过一些洞察。
- 分组柱状图有时会显得相当杂乱和混乱。
当然,桑基图也可以有多个层级,如下所示:

要确定何时使用桑基图,看看数据是否涉及资源、能量或信息在多个阶段或实体之间的任何形式的流动。如果是,桑基图可能非常有价值。创建桑基图有多种方式:
- 要以编程方式生成它们,你可以使用 ipysankeywidget 库:https://github.com/ricklupton/ipysankeywidget。
- 如果你更喜欢 GUI,SankeyMATIC 是一个很酷且易于使用的创建桑基图的工具,我经常使用:https://bit.ly/3WdMAnx。
