桑基图、弦图、旭日图:如何表现复杂流向关系

桑基图、弦图、旭日图:如何表现复杂流向关系

在数据可视化的世界里,有一类图表特别"有气质"------它们不追求简洁对比,而是专门用来揭示复杂的流向与关系。

这类图表往往能把原本看似杂乱无章的多维数据,变成一幅优雅的"流动之网"。

其中,桑基图(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. 优势与局限

优势:

  • 结构清晰、分层直观;
  • 利用空间高效,可展示多个层级;
  • 可结合交互实现逐层下钻分析。

局限:

  • 层级太多时外圈拥挤,阅读困难;
  • 不适合时间序列或非层级数据。

旭日图最适合在层级清晰的数据中使用,如组织结构、分类体系、或财务拆解分析。


四、如何选择:三者的对比与决策指南

图表类型 最适合场景 数据结构 视觉核心 优势 局限
桑基图 展示流向、路径、转化关系 序列/路径型 流线宽度 展示数据流动与转化直观 实现复杂,线条易交叉
弦图 展示实体间的双向关系 矩阵型 圆弧与弦线 表达关系强度、方向 节点多时杂乱
旭日图 展示层级结构和占比 分层结构 同心圆环 层级清晰,占比直观 外层空间有限

因此,你可以这样判断:

  • 分析行为流动或转化路径?→ 用桑基图。
  • 展示多实体间的交互与影响?→ 用弦图。
  • 展示结构化的层级分解?→ 用旭日图。

这三种图的视觉风格虽然不同,但都服务于同一个目标------让复杂关系变得直观、结构化、可探索。


五、实战思考:从图表到洞察

可视化的本质,不是"炫技",而是"洞察传递"。

选对图表,才能让复杂关系"一眼就懂"。

几个实用建议:

  1. 从业务问题出发,而非从图表出发。
    先问清楚"我要揭示什么关系?",再决定是否需要桑基、弦或旭日。
  2. 控制节点数量。
    复杂关系图不等于复杂视觉。适度聚合、合并小节点能提升可读性。
  3. 用交互补充静态局限。
    通过 Hover 展示细节或动态过滤,让图表既美观又实用。
  4. 与算法结果结合。
    桑基图 + FP-Growth、弦图 + 相关矩阵、旭日图 + 层级聚类------这些组合能让可视化与建模融为一体。

✨结语

桑基图、弦图、旭日图并不是日常可视化的"基础款",但它们能在恰当场景下呈现出结构、流动与比例的复杂之美

如果折线图像是时间的轨迹、柱状图像是数量的对比,那么这三类图,就像是"关系的地图"------

让我们在数据的网络中,看见流向、看见关联,也看见系统的整体逻辑。

相关推荐
hhhLLyi3 小时前
营销人职业成长路径:从执行到战略的能力进阶与知识体系构建
信息可视化·数据挖掘·数据分析
聪明的笨猪猪5 小时前
Java JVM “类加载与虚拟机执行” 面试清单(含超通俗生活案例与深度理解)
java·经验分享·笔记·面试
FserSuN5 小时前
构建基于大语言模型的智能数据可视化分析工具的学习总结
学习·信息可视化·语言模型
つ 派小星7 小时前
windows10激活解决办法
经验分享
bmcyzs14 小时前
【展厅多媒体】触摸查询一体机实现数据可视化
经验分享·科技·信息可视化·数据挖掘·数据分析·设计规范
纵有疾風起14 小时前
C++——类和对象(3)
开发语言·c++·经验分享·开源
承渊政道15 小时前
动态内存管理
c语言·c++·经验分享·c#·visual studio
B站_计算机毕业设计之家16 小时前
计算机毕业设计:Python农业数据可视化分析系统 气象数据 农业生产 粮食数据 播种数据 爬虫 Django框架 天气数据 降水量(源码+文档)✅
大数据·爬虫·python·机器学习·信息可视化·课程设计·农业