桑基图、弦图、旭日图:如何表现复杂流向关系
桑基图、弦图、旭日图:如何表现复杂流向关系
在数据可视化的世界里,有一类图表特别“有气质”——它们不追求简洁对比,而是专门用来揭示复杂的流向与关系。
这类图表往往能把原本看似杂乱无章的多维数据,变成一幅优雅的“流动之网”。
其中,桑基图(Sankey Diagram)、弦图(Chord Diagram)、和 旭日图(Sunburst Diagram) 是三种最典型的代表。
今天我们就来聊聊它们的用途、特点、技术原理,以及在真实业务中的应用案例。
一、桑基图:让“流动”变得可见
1. 什么是桑基图?
桑基图最初用于能源系统分析,用来展示能量在各环节的流动与损耗。后来,这种“流向可视化”的理念逐渐扩展到商业、用户行为、供应链乃至算法分析中。
简而言之:
桑基图展示的是“从哪里流到哪里”以及“流了多少”。
在图中,每一个节点代表一个阶段或类别,而连接它们的“流”——就是数据的传递关系,线的宽度代表流量或权重。
2. 为什么它对“序列分析”特别有用
在数据挖掘中,我们经常会遇到“序列模式”问题:
- 用户在电商平台上的浏览路径是什么?
- 客户在不同渠道间如何迁移?
- 某种操作序列在系统日志中出现的频率有多高?
这些问题的答案往往涉及“路径”与“权重”。
在这一点上,桑基图与 频繁模式树(FP-Tree) 有着天然的相似性。
FP-Growth 算法中,我们通过节点和频数的累加构建一棵树来表示频繁项集,而桑基图恰好能用视觉方式呈现这些“路径”和“频数”。
所以,在做序列挖掘或路径分析时,桑基图几乎是首选。
3. 实际案例:客户购买路径分析
假设我们分析一家电商平台的用户行为数据:
步骤 | 内容 |
---|---|
Step 1 | 用户先浏览了“手机” |
Step 2 | 部分用户转向“手机壳”或“耳机” |
Step 3 | 最终有些人购买了“充电宝”或“保护膜” |
通过桑基图,我们能看到这样的流向:
- “手机 → 耳机” 的流向线很粗,说明购买手机的用户中有大量转向耳机;
- “手机壳 → 保护膜” 的线条细,表示转化较少;
- 若我们按时间或渠道过滤,还可以发现不同入口的转化差异。
这种直观的“流动可视化”,让市场分析师能够一眼看出关键路径,从而优化营销策略或推荐逻辑。
4. 技术实现的挑战
目前的可视化工具(如 Tableau、Power BI)虽然支持桑基图,但自定义灵活性不高。
很多时候我们需要通过 Python(plotly、matplotlib-sankey) 或 D3.js 自行实现。
这通常涉及:
- 对数据进行“节点–连接–权重”格式的重构;
- 聚合相似路径;
- 计算权重占比;
- 调整布局参数,避免线条过度交叉。
因此,桑基图虽然炫酷,但属于高门槛、低容错的图表类型。
二、弦图:关系网络的优雅表达
1. 概念与特征
弦图(Chord Diagram)是一种用于展示矩阵型关系的图表,能直观地表现多个实体之间的相互影响与流量。
在图中,所有节点被均匀地排列在圆周上,节点间的“弧线”表示它们之间的关系。
弧线越粗,关系越强;颜色可以表示方向或类别。
它的核心在于:
弦图是对称的、双向的关系可视化。
2. 应用场景
场景 | 示例 |
---|---|
贸易流动 | 各国之间的进出口额 |
社交关系 | 用户间的互动强度 |
部门流动 | 员工跨部门调动情况 |
产品交叉销售 | A商品购买者同时购买B商品的比例 |
例如,当我们分析公司内部的人员流动时,弦图可以这样展示:
- “市场部 ↔ 销售部” 的弧线很粗,说明人员调动频繁;
- “研发部 → 运营部” 的方向明显单向;
- 小部门间的联系细微,显示互动较少。
这比一张矩阵表要直观得多。
3. 优势与局限
优势:
- 能清晰展示任意两者间的关系强度;
- 可展示双向或多向流动;
- 美观且交互感强,非常适合“展示型”分析报告。
局限:
- 当节点数量超过 15 个,弦图会变得非常混乱;
- 对阅读者要求较高,不熟悉关系型图表的人可能难以快速理解。
因此,弦图更适合展示中等规模、关系密集的数据系统,而非大规模复杂网络。
三、旭日图:层级结构的放射式拆解
1. 旭日图的设计哲学
旭日图(Sunburst Diagram)看起来像一朵放射状的花。
它把分层结构数据映射成一个个同心圆,每一层代表一个层级:
最内圈是顶层类别,往外一圈一圈是细分层级。
每个扇形的角度代表占比或数量,环的宽度表示层级深度。
2. 应用场景
场景 | 示例 |
---|---|
销售分解 | 年度 > 季度 > 月份 > 产品线 |
网站分析 | 来源类型 > 渠道 > 页面 |
文件系统 | 文件夹 > 子文件夹 > 文件大小 |
财务结构 | 总支出 > 部门 > 具体费用类型 |
旭日图擅长回答的问题是:
- “某个部分占整体的比例是多少?”
- “它属于哪个更大的层级?”
- “在整体结构中,它的位置在哪里?”
例如:
在网站流量分析中,旭日图可以清楚展示“直接访问”、“搜索引擎”、“社交媒体”等来源各自的占比,并能逐层展开到具体的渠道或落地页面。
3. 优势与局限
优势:
- 结构清晰、分层直观;
- 利用空间高效,可展示多个层级;
- 可结合交互实现逐层下钻分析。
局限:
- 层级太多时外圈拥挤,阅读困难;
- 不适合时间序列或非层级数据。
旭日图最适合在层级清晰的数据中使用,如组织结构、分类体系、或财务拆解分析。
四、如何选择:三者的对比与决策指南
图表类型 | 最适合场景 | 数据结构 | 视觉核心 | 优势 | 局限 |
---|---|---|---|---|---|
桑基图 | 展示流向、路径、转化关系 | 序列/路径型 | 流线宽度 | 展示数据流动与转化直观 | 实现复杂,线条易交叉 |
弦图 | 展示实体间的双向关系 | 矩阵型 | 圆弧与弦线 | 表达关系强度、方向 | 节点多时杂乱 |
旭日图 | 展示层级结构和占比 | 分层结构 | 同心圆环 | 层级清晰,占比直观 | 外层空间有限 |
因此,你可以这样判断:
- 分析行为流动或转化路径?→ 用桑基图。
- 展示多实体间的交互与影响?→ 用弦图。
- 展示结构化的层级分解?→ 用旭日图。
这三种图的视觉风格虽然不同,但都服务于同一个目标——让复杂关系变得直观、结构化、可探索。
五、实战思考:从图表到洞察
可视化的本质,不是“炫技”,而是“洞察传递”。
选对图表,才能让复杂关系“一眼就懂”。
几个实用建议:
- 从业务问题出发,而非从图表出发。
先问清楚“我要揭示什么关系?”,再决定是否需要桑基、弦或旭日。 - 控制节点数量。
复杂关系图不等于复杂视觉。适度聚合、合并小节点能提升可读性。 - 用交互补充静态局限。
通过 Hover 展示细节或动态过滤,让图表既美观又实用。 - 与算法结果结合。
桑基图 + FP-Growth、弦图 + 相关矩阵、旭日图 + 层级聚类——这些组合能让可视化与建模融为一体。
✨结语
桑基图、弦图、旭日图并不是日常可视化的“基础款”,但它们能在恰当场景下呈现出结构、流动与比例的复杂之美。
如果折线图像是时间的轨迹、柱状图像是数量的对比,那么这三类图,就像是“关系的地图”——
让我们在数据的网络中,看见流向、看见关联,也看见系统的整体逻辑。