前几天,朋友提到一种数据统计分析的图类型——桑基图,确实之前了解比较少,找了一些资料,学习了解下。
桑基图是一种图表类型,用于可视化流量、能量、资源或数量的流动。它通过使用有向箭头连接不同的节点来显示流动的路径和量级。
桑基图常用于可持续能源、物流、人口流动、资源分配等领域的数据可视化。它可以帮助用户直观地理解和分析复杂的流动和关系,从而支持决策和策划过程。

桑基图的创始人叫"桑基",英文名Sankey,全名Matthew Henry Phineas Riall Sankey CB CBE FIMechE,爱尔兰工程师,英国军队皇家工程局(Royal Engineers)的上校(Caption)。英国上将William Sankey, C.B之子,自幼受到了很好地教育。
桑基图最初是用来描述蒸汽机(steam engine)的热量流转效率(energy flow efficiency),下图来自于1898年的Sankey图示,相对而言形式更加严谨复杂,

在这里,连续性的度量是"热量",离散的输入和输出代表维度分类。如右侧所示,内燃机能量的取向,除了正常的做功驱动机器运转,相当多的能力被浪费掉了,包含驱动损失、齿轮等磨损损失、热流失等等。
能量是守恒的,Sankey发明的这个图很好地描述了热量的输入和输出之平衡关系,帮助设计者理解和改进,所以又称之为"热平衡图",

桑基图的特点
节点:
桑基图由一系列节点组成,每个节点代表一个特定的实体或类别。
节点可以代表不同的产品、部门、地区等。
箭头:
箭头表示流动的路径,从一个节点流向另一个节点。
箭头的宽度通常表示流量或数量的大小。

流量量级:
桑基图可以显示不同节点之间的流量量级,通过箭头的宽度来表示。
宽度越大,表示流量或数量越大。
路径:
桑基图可以显示多个节点之间的复杂路径,通过连接不同的节点和箭头来表示。
颜色编码:
桑基图可以使用颜色来编码不同的节点或流动路径,以帮助用户更好地理解和区分不同的实体或类别。

理解了桑基图的特征,我们就可以在各个业务场景中找到它的经典应用,它适合于任何具有输入和输出两段维度的连续性度量分析,例如资金审计、热电厂能耗、物流成本等。
如下所示的应用场景强调了"连续度量"的重要性,而其起点和终点就是桑基图的两段,
能源流动:展示能源(度量值)从来源(input)到最终用途(output)的转化和分布,如电力或热能的生产、传输和消耗过程。
成本流分析:在生产和服务过程中,通过桑基图可以直观地显示不同成本因素(原材料、人工、运输等)如何组成总成本。
物料与资源流:用于展示在生产系统中物料的流动路径和损耗情况,帮助优化资源利用效率。
网站用户行为:分析用户在网站或应用中的行为路径,如页面访问流程、购物车添加到购买的转化流程等。
供应链与物流:显示产品从原材料采购、生产加工到最终销售的全过程中的物流和信息流。
生信分析:如构建ceRNA调控网络,单细胞亚群分类,物种门类分类,基因组重测序变异类型等。
金融数据可视化:追踪用户状态,追踪跑票、变动、迁移,追踪人口流动情况等。
之前,桑基图是比较难以实现的复杂图形,它不仅比条形图多了一个维度,而且多个维度有先后。它包含连续性的度量,但是又没有显而易见的度量轴。
但是,随着越来越多的BI工具内嵌了桑基图图表,一切变得简单。
设计的注意事项
在设计桑基图图表时,以下是一些需要注意的事项,
数据准备:
确保数据准备充分,包括节点和流量的数据。
节点应该清晰明确,流量数据应该准确可靠。
简洁明了:
桑基图应该保持简洁明了,避免过多的节点和复杂的路径。
过多的节点和路径可能会导致图表混乱不清晰,难以理解。

良好的布局:
选择合适的布局方式,使得节点和箭头的排列有一定的逻辑性。
可以按照流动的方向或重要性进行布局。
色彩选择:
选择合适的色彩来区分不同的节点和流动路径。
颜色应该鲜明对比,以便用户能够清晰地区分不同的实体或类别。
箭头宽度控制:
根据流量的大小,合理调整箭头的宽度。 宽度应该能够直观地反映流量的差异,但也不能过于夸张。

标签和注释:为节点和箭头添加标签和注释,以便用户能够理解图表的含义。标签应该简洁明了,能够清晰地描述节点和流动的含义。
交互性:考虑为桑基图添加交互性,例如鼠标悬停显示详细信息、点击节点展开子节点等。交互性可以增强用户体验,使得用户能够更深入地探索数据。
可视化工具:使用专业的可视化工具或库来创建桑基图,例如D3.js、Tableau、Power BI等。这些工具提供了丰富的功能和模板,能够帮助您更轻松地创建和定制桑基图。

通过注意以上这些的事项,可以设计出清晰、易于理解和美观的桑基图图表,帮助用户更好地理解和分析数据的流动和关系。
复杂图形无一例外都是简单可视化的堆叠,因此理解桑基图的起点是条形图和折线图。条形图(bar chart)是一个离散维度、一个连续度量构成的"排序主题"可视化,而折线图(line chart)是一个连续维度(日期)、一个连续度量构成的"趋势主题"可视化,桑基图(Sankey Chart)则是两个或离散维度和一个连续度量构成的"流向主题"可视化。
桑基图必须要有两个或以上的维度分类,两个维度分类有必然的先后次序,分别表示流向的起点、终点。
桑基图必须要有且只有一个连续的度量值,用来表示流向的对象,例如资金的流向、燃气的流向等等。
参考资料,
https://zhuanlan.zhihu.com/p/698699986
如果您认为这篇文章有些帮助,还请不吝点下文章末尾的"点赞"和"在看",或者直接转发朋友圈,





