Origin零代码绘制专业桑基图:从数据准备到电商用户流转分析实战
1. 从数据到洞察:为什么我们需要桑基图
如果你经常和数据打交道,尤其是处理那些涉及“流转”、“转化”或“分配”关系的数据,比如用户在不同渠道间的流转路径、公司预算在各个部门的分配流向,或者能源从生产到消费的转化过程,你可能会发现传统的柱状图、饼图甚至折线图都有些力不从心。它们能告诉你“有多少”,却很难清晰、直观地展示“从哪里来,到哪里去”。这正是桑基图(Sankey Diagram)大显身手的地方。
我第一次接触桑基图是在分析一个电商平台的用户行为漏斗时。当时我们用传统的漏斗图,只能看到每个步骤的流失率,但完全不清楚流失的用户到底去了哪里——是直接离开了,还是跳转到了其他页面?直到尝试用桑基图将用户的所有页面跳转路径可视化出来,那些隐藏在数据背后的“暗流”才豁然开朗。比如,我们发现大量用户在支付前一步没有直接流失,而是返回了商品详情页反复比较,这直接指向了我们的商品信息展示或促销策略存在问题。这种洞察,是其他图表难以提供的。
简单来说,桑基图是一种特定类型的流图,它用箭头的粗细来代表流量的大小,直观地展示了能量、物质或成本等在系统不同部分之间的转移情况。它的核心价值在于揭示主要流向、发现关键路径以及识别潜在的损耗点。近年来,随着数据分析在各行各业的普及,桑基图也从最初的热力学、能源领域,迅速渗透到互联网、金融、供应链管理等多个行业,成为数据可视化工具箱中不可或缺的一员。网络上关于“桑基图”的搜索热度持续攀升,也侧面印证了市场对这类深度分析工具的需求。
很多人,包括早期的我,觉得桑基图看起来很复杂,一定是编程高手或者专业设计软件才能驾驭的。但事实并非如此。今天,我就以最常用的工具之一——Origin为例,抛开那些令人望而生畏的代码和复杂操作,带你一步步实现一个专业级桑基图的“从零到一”。你会发现,它的核心逻辑非常清晰,操作也可以很“傻瓜”。无论你是科研人员、市场分析师,还是学生,只要你的数据有关联和流动,这篇手把手的指南都能让你在半小时内,亲手绘制出你的第一张桑基图。
2. 绘制前的核心准备:理解数据结构与工具选型
在动手画图之前,我们必须先把桑基图的“骨架”——也就是数据——整理明白。这一步做不好,后面所有操作都是空中楼阁。桑基图的数据结构有其特殊性,它不关心单个节点的绝对值,只关心节点之间的“流量”关系。
2.1 桑基图数据的“铁三角”模型
所有桑基图的数据,无论领域,都可以抽象为三个核心要素: 源节点(Source)、目标节点(Target)和流量值(Value) 。你可以把它想象成一份货运清单:从A仓库(源)发往B城市(目标)的货物有多少吨(流量)。
1. 源节点与目标节点: 它们代表了流程中的各个阶段或类别。例如,在分析公司部门预算分配时,“财务部”是源节点,“研发部”、“市场部”等是目标节点;在下一级分配中,“研发部”又可能成为新的源节点,其内部各项目成为目标节点。节点通常是文本型数据(字符串)。
2. 流量值: 这是一个数值,表示从源节点到目标节点转移的量。它必须是正数,决定了连接箭头的宽度。流量值的大小是相对的,图表会自动根据所有流量值的比例来渲染宽度。
3. 数据的层级与流程: 桑基图可以描述多级流程。数据需要按流程顺序组织。通常,你的数据表会是一个长长的列表,每一行记录一条“从A到B的流量”。例如:
| 源节点 | 目标节点 | 流量值 |
|---|---|---|
| 总部预算 | 研发中心 | 500 |
| 总部预算 | 营销中心 | 300 |
| 研发中心 | 项目A | 200 |
| 研发中心 | 项目B | 300 |
| 营销中心 | 线上广告 | 150 |
| 营销中心 | 线下活动 | 150 |
注意: 确保你的数据是“干净”的。检查是否有重复的(源,目标)对(如果有,需要合并流量值),以及流量值是否存在负数或非数值(这会导致绘图错误)。
2.2 为什么选择Origin作为入门工具?
工欲善其事,必先利其器。市面上能画桑基图的工具很多,从在线的简易工具(如RAWGraphs),到编程库(如Python的Plotly、pySankey),再到专业软件(如Origin、SigmaPlot)。对于初学者和非程序员,我强烈推荐从Origin开始,原因有三:
1. 免代码,界面化操作友好: Origin提供了直接的桑基图绘图模板,你不需要写一行代码,只需要按照规范导入数据,通过点选和设置对话框就能完成绝大部分绘图工作。这极大地降低了学习门槛,让你能专注于数据本身和图表意义的理解,而不是纠结于语法错误。
2. 强大的数据管理与预处理能力: Origin首先是一个专业的数据分析软件,其工作表(Worksheet)对数据的排序、筛选、转换支持非常完善。在准备桑基图数据时,你可能需要进行数据透视(汇总)、排序等操作,这在Origin内可以轻松完成,无需借助Excel或其他工具中转,保证了工作流的连贯性。
3. 出版级的图形输出与精细化调整: 作为科研绘图的事实标准之一,Origin在图形细节控制上无出其右。绘制出基本桑基图后,你可以对每一个节点的颜色、宽度、标签字体、位置进行像素级的调整,直到满足学术出版或商业报告的高标准要求。这种程度的定制化,是在线工具难以企及的。
当然,如果你后续需要将绘图过程自动化,或者集成到数据分析流水线中,学习Python的Plotly库会是更进阶的选择。但对于“快速上手并得到可用结果”这个目标,Origin的“所见即所得”特性无疑是最高效的路径。接下来,我们就进入Origin的实际操作环节。
3. 在Origin中一步步绘制你的第一张桑基图
假设我们已经整理好了上面那份“预算分配”的数据表,并打开了Origin软件。以下是从导入数据到生成图表的完整流程。
3.1 数据录入与工作表准备
首先,在Origin的工作表(Worksheet)中,按照桑基图模板的要求输入数据。Origin 2018及更高版本内置了桑基图模板,对数据格式有特定要求。
- 创建工作表: 打开Origin,默认会有一个空白工作表。我们将A(X)列、B(Y)列暂时忽略,直接从C列开始。
- 输入节点标签: 在C列(可命名为“标签”), 自上而下 输入所有 不重复 的节点名称。顺序可以是随意的,但通常按流程顺序或字母顺序排列会更利于后续检查。例如:
总部预算、研发中心、营销中心、项目A、项目B、线上广告、线下活动。 - 输入连接矩阵数据: 从D列开始,每一列代表一个 源节点 。列标题最好用源节点命名(如“总部预算”)。在每一列下方,填入该源节点到 所有其他目标节点 的流量值。 这里有个关键技巧:目标节点的顺序必须严格与C列“标签”的顺序一致。
- 在“总部预算”这一列,对应“研发中心”的行(假设“研发中心”在C列第2行)填入500,对应“营销中心”的行填入300,其他行(如“总部预算”自己、“项目A”等)填0或留空。
- 在“研发中心”这一列,对应“项目A”的行填入200,对应“项目B”的行填入300,其他行填0。
- 以此类推。
最终,你的工作表会形成一个“连接矩阵”,横坐标是源节点,纵坐标是所有节点标签,矩阵内的值是流量。这是Origin桑基图模板识别的标准格式之一。另一种格式是前面提到的“三列式”(源、目标、值),但矩阵格式更直观,且便于Origin计算。
3.2 调用模板并生成初始图表
数据准备好后,绘图就非常简单了。
- 选中数据: 用鼠标拖选你刚刚构建的整个连接矩阵数据区域(即D列及之后的所有数据,不包括C列的标签列)。
- 选择绘图类型: 点击顶部菜单栏的 Plot -> Category -> Sankey Diagram 。如果你的Origin版本较新,也可以在绘图工具栏的图表类型下拉菜单中直接找到“Sankey”。
- 生成图表: 点击后,Origin会自动生成一个初始的桑基图窗口。你会看到,节点(矩形条)已经按照C列的标签顺序排列在左右两侧,箭头根据矩阵中的流量值连接并显示了相应的宽度。
第一次看到生成的图,可能会觉得布局有点乱,节点颜色也不够分明。别担心,这只是默认状态,我们接下来进行的美化和调整才是让图表脱颖而出的关键。
3.3 图表美化与关键细节调整
生成的初始图表功能已完备,但为了提升可读性和专业性,我们需要进行一系列调整。双击图表中的任意部分,可以打开“Plot Details”对话框,这里包含了所有可调整的参数。
1. 节点(Node)设置:
- 颜色: 在“Plot Details”的“Node”选项卡中,可以为每个节点单独设置颜色。建议对同一层级的节点使用同一色系的不同深浅,或者对不同性质的节点(如收入、支出)使用对比色。例如,所有“部门”用蓝色系,“项目”用绿色系。
- 宽度与间距: 可以调整节点的宽度(固定值或基于流量)以及节点之间的间距,使布局更紧凑或更舒展。
- 标签: 在“Label”选项卡中,可以设置节点标签的字体、大小、颜色和位置。通常将标签放在节点内部或紧贴其旁,确保清晰可读。
2. 连接(Link/Flow)设置:
- 颜色: 连接的箭头默认可能继承源节点或目标节点的颜色,也可以在“Link”选项卡中统一设置或根据流量梯度着色。我个人的习惯是让连接的颜色与 源节点 一致,这样一眼就能看出流量的起点。
- 透明度: 适当增加连接的透明度(如设置为70%),可以在连接交叉重叠时提升图表的层次感和可读性。
- 箭头样式: 可以调整箭头头部的形状和大小,使其更明显或更柔和。
3. 布局与排序优化:
- 有时默认的节点排序(按数据顺序)会导致连接线大量交叉,看起来混乱。你可以在工作表里调整C列标签的顺序,然后刷新图表,观察是否改善了布局。或者,有些高级选项允许按流量总和自动排序节点,让流量大的节点靠得更近,减少交叉。
- 调整整个图表画布的大小和比例,确保所有元素都能舒适地显示,不拥挤也不松散。
4. 添加标题和图例:
- 为图表添加一个描述性的标题,说明图表展示的内容。
- 如果使用了复杂的着色方案(如流量梯度色),记得添加图例进行说明。
这个过程可能需要反复调试,直到找到最清晰、美观的呈现方式。记住,好的可视化是在准确传达信息的前提下,尽可能减少读者的认知负担。
4. 实战案例解析:电商用户流转路径分析
为了让你更好地理解整个流程,我们用一个更贴近互联网行业的实际案例来串联上述步骤。假设我们有一家电商网站,想要分析用户从访问首页到最终购买的核心路径,以及主要的流失点。
步骤一:定义节点与流程 我们定义以下几个关键节点: 首页 、 商品列表页 、 商品详情页 、 购物车页 、 支付页 、 支付成功 。此外,还有两个虚拟节点: 入口流量 (代表所有会话的起点)和 流失 (代表用户离开网站)。
步骤二:收集与整理数据 通过网站分析工具(如Google Analytics),我们可以提取出用户在不同页面间跳转的会话数。整理成如下三列式数据:
| 源节点 | 目标节点 | 流量(会话数) |
|---|---|---|
| 入口流量 | 首页 | 10000 |
| 首页 | 商品列表页 | 6000 |
| 首页 | 流失 | 4000 |
| 商品列表页 | 商品详情页 | 3500 |
| 商品列表页 | 流失 | 2500 |
| 商品详情页 | 购物车页 | 1500 |
| 商品详情页 | 流失 | 2000 |
| 购物车页 | 支付页 | 1200 |
| 购物车页 | 流失 | 300 |
| 支付页 | 支付成功 | 1000 |
| 支付页 | 流失 | 200 |
步骤三:在Origin中构建矩阵并绘图
- 在C列输入所有不重复节点标签:
入口流量,首页,商品列表页,商品详情页,购物车页,支付页,支付成功,流失。 - 从D列开始,以每个节点为源节点创建列,并按照C列顺序填入到目标节点的流量值。例如“首页”这一列,在对应“商品列表页”的行填6000,对应“流失”的行填4000,其他行填0。
- 选中数据矩阵,绘制桑基图。
步骤四:分析与洞察 生成的桑基图会清晰地显示:
- 主要流失点: 最粗的“流失”箭头很可能来自
首页和商品详情页。这提示我们需要优化首页的吸引力和商品详情页的转化能力。 - 关键转化路径:
首页 -> 商品列表页 -> 商品详情页 -> 购物车页 -> 支付页 -> 支付成功这条路径的箭头连贯且逐渐变细,直观展示了转化漏斗。 - 异常流转: 如果发现从
购物车页有较粗的箭头流回商品详情页,可能意味着用户在最后关头还在比价或犹豫,可以考虑在购物车页提供更强烈的促销提示或安全保障信息。
通过这样一张图,产品、运营和设计团队可以迅速对齐认知,聚焦在流量损耗最大的环节进行优化,其沟通效率远高于罗列一堆百分比数字。
5. 进阶技巧与常见问题排坑指南
掌握了基本绘制方法后,你可能会遇到一些特定需求或棘手问题。这里分享几个我踩过坑后总结的进阶技巧和解决方案。
5.1 处理多级复杂流程与循环流
现实中的数据流往往是多级、甚至带有循环的(比如用户从支付页退回购物车)。Origin的桑基图模板在处理多级流程时表现良好,只需在数据矩阵中包含所有层级的连接即可。但对于循环流(A->B, B->A),需要注意:
- 可视化可能混乱: 双向流动会导致连接线交叉,难以辨认。解决方案是考虑将时间维度纳入,绘制两个不同时间段的桑基图进行对比,或者使用其他图表(如和弦图)来专门展示双向关系。
- 数据准确性: 确保循环流的数据是合理的,有时这可能是数据采集或处理中的错误。
5.2 节点颜色与流量着色的高级策略
- 按类别着色: 这是最常用的方法。在“Plot Details”的“Node”选项卡中,选择“Color Mapping”,然后根据一个分类列(比如节点所属的部门)来分配颜色。这能让人一眼区分不同类别的节点。
- 流量梯度着色: 如果你想突出显示流量的大小,可以对连接线使用梯度色。在“Link”选项卡中,选择“Colormap”,依据流量值(或流量百分比)从一种颜色渐变到另一种颜色(如浅蓝到深蓝)。这样,流量大的连接不仅宽,颜色也更深。
- 手动配色: 对于报告或演示,可能需要使用公司品牌色。你可以禁用自动着色,在节点或连接的颜色设置中,逐个手动指定颜色值(RGB或HEX)。
5.3 导出与在其他平台使用
Origin绘制的图表可以导出为多种格式:
- 高分辨率图片: 用于PPT、Word文档。建议导出为
.png或.tif格式,分辨率设置为300 dpi或更高,以确保印刷清晰。 - 矢量图: 用于学术出版。导出为
.eps或.pdf格式,可以无限放大而不失真。这是向期刊投稿时的首选格式。 - 注意事项: 导出前,请务必在Origin的“Export”设置中勾选“保持纵横比”和“嵌入字体”(如果使用了特殊字体),以防在其他电脑上显示异常。
5.4 常见问题与排查清单
-
图表不显示或显示不全:
- 检查数据格式: 确保流量值都是正数,且连接矩阵的数据区域选择正确。
- 检查节点标签: 源节点列标题是否在标签列中存在?目标节点的顺序是否与标签列完全一致?
- 尝试简化数据: 先用极简的2-3个节点数据测试模板是否正常工作。
-
连接线缺失或错误:
- 核对流量值: 确认在矩阵中对应位置填写的流量值无误。一个常见的错误是行、列对应关系搞反。
- 查看隐藏值: 检查是否有单元格包含
NaN、#N/A或文本,这些会导致连接不被计算。
-
图形布局混乱,交叉过多:
- 手动调整节点顺序: 在工作表的标签列(C列)中,尝试拖拽行来调整节点顺序。将流量交互密集的节点在顺序上安排得靠近一些。
- 调整图表尺寸: 给图表一个更宽或更高的画布,为连接线提供更多伸展空间。
- 使用曲线连接: 在“Link”选项卡中,将连接线类型从“直线”改为“曲线”(贝塞尔曲线),有时能减少视觉上的交叉感。
-
性能问题(数据量大时卡顿):
- 聚合数据: 桑基图不适合展示成百上千条细微的流。考虑在数据层面进行聚合,将小流量合并到“其他”类别中。
- 简化样式: 暂时关闭阴影、渐变等视觉效果,提升交互和刷新速度。
绘图本身是一个迭代和探索的过程。不要期望第一次就能得到完美的图表,多尝试不同的布局、配色和设置,最终找到最能清晰讲述你数据故事的那一种呈现方式。
更多推荐




所有评论(0)