在过去三年里,我参与了超过40个数据分析项目的评审,发现一个令人担忧的现象:近70%的分析师在选择高级图表时,遵循的是"好看"而不是"有效"的原则。桑基图和热力图作为两种最具代表性的高级图表,恰恰是这种误区的重灾区。很多团队花大量时间把图表做得"炫酷",却在汇报时被老板追问"这张图到底想说明什么?"本文将从决策视角出发,结合真实案例和数据,帮你建立一套选择、设计、应用桑基图与热力图的完整框架。
在深入细节之前,我先给出一个核心判断:桑基图的核心价值在于展示"流",热力图的核心价值在于展示"密度"。这两个词决定了它们完全不同的适用场景和设计逻辑。
桑基图解决的核心问题是:数据从哪来,到哪去,中间经过了哪些路径,每条路径的流量有多大。它的视觉语言是"宽度代表数值",所以当你需要展示"转化路径、流量分配、资金流向、能量传递"时,桑基图是最佳选择。
举个例子:一个电商平台想分析用户从"进入首页"到"完成购买"的行为路径,中间经过了多少个页面跳转,每个步骤的流失率是多少。这时桑基图可以清晰地展示"首页→搜索→商品详情→加入购物车→支付"的完整路径,每条路径的宽度代表用户数量。
热力图解决的核心问题是:数据在空间或矩阵中的分布密度如何,哪些区域集中,哪些区域稀疏。它的视觉语言是"颜色深浅代表数值大小",所以当你需要展示"相关性矩阵、页面点击分布、地理密度、时间密集度"时,热力图是最佳选择。
举个例子:一个SaaS产品想分析用户在产品内的点击分布,了解哪些功能最常用,哪些功能被忽略。这时热力图可以展示"页面不同区域的点击密度",颜色越深表示点击越多。
在项目评审中,我见过太多选错图表的案例:用桑基图展示相关性矩阵,结果节点混乱、信息无法读取;用热力图展示用户行为路径,结果丢失了流向信息,无法判断转化顺序。这些错误导致的分析报告,不仅无法辅助决策,还会误导决策方向。

桑基图虽然强大,但并不是所有"有路径"的场景都适合使用。我在实际工作中总结出三个关键判断标准。
当你的数据同时满足以下三个条件时,桑基图是最优选择:
典型案例:某在线教育平台想分析用户从"注册"到"付费"的完整路径,涉及7个关键节点、15条主要路径。桑基图让团队一眼看出"注册→试听→付费"的转化率最高,而"注册→浏览课程→离开"的流失最严重。
我在评审中发现了桑基图设计的三个"致命伤":
(1)节点过多导致信息过载
某零售企业曾用桑基图展示"商品分类→子分类→品牌→SKU"的流向,涉及30多个节点、200多条路径。结果整张图变成一团乱麻,完全无法读取。我建议他们改用"分层展示"的方式:先展示一级分类的流向,再单独放大某个分类的详细流向。最终分析效率提升了50%。
(2)颜色使用混乱
很多人喜欢给每条路径用不同颜色,认为这样"好看"。但实际上,当路径超过10条时,不同颜色反而会产生视觉噪音,让观众无法聚焦于流量本身。我建议按"源节点"统一色系,同一来源的路径使用相近颜色,这样观众可以快速识别"从哪来"。
(3)流向不统一
桑基图的流向必须保持一致性:要么从左到右,要么从上到下。我见过一些图表混用两种流向,导致观众需要反复确认"到底是从左到右还是从右到左"。这种基础错误会直接降低图表的可信度。
基于以上经验,我总结出桑基图设计的四条原则:

热力图看似简单,但实际应用中的坑比大多数人想象的多。我从色阶选择、数据预处理和场景匹配三个维度来拆解。
热力图在以下三种场景中不可替代:
典型案例:某SaaS产品团队想优化首页布局,使用热力图分析用户点击分布。结果发现"搜索框"的点击密度比"导航菜单"高3倍,但搜索框位置偏下,用户需要滚动才能看到。团队据此将搜索框移到顶部,整体点击率提升了22%。
(1)色阶选择错误,最隐蔽的杀手
很多人觉得"彩虹色阶看起来很酷",但这是热力图设计中最严重的错误之一。彩虹色阶会让观众误以为颜色代表"类别"而不是"数值",而且不同颜色的亮度差异会导致视觉误导。我建议使用单色渐变(如从浅蓝到深蓝)或发散色阶(如红-白-蓝),这两种色阶的数值映射关系最清晰。
(2)缺失值处理不当
当数据中存在缺失值时,很多人直接用白色或灰色表示。但这样会让人误以为"该区域数值为零"。我建议使用插值方法填充缺失值,并在图表中标注"已插值区域",或者使用专门的"缺失值模式"(如斜线填充)来区分。
(3)单元格过小导致标签拥挤
当矩阵维度较大时(如20×20),每个单元格会变得很小,数值标签重叠在一起。我建议隐藏数值标签,采用鼠标悬停显示的方式,或者调整单元格大小,只展示部分关键数值。
根据我的测试经验,不同色阶对信息读取准确性的影响非常显著:

在实际工作中,我经常被问到"什么时候用桑基图,什么时候用热力图"。我设计了一个简单的决策框架,帮助团队快速判断。
回答以下三个问题,就能确定应该选择哪种图表:
在某些复杂场景中,桑基图和热力图可以组合使用。例如:
场景:电商用户行为分析
先用桑基图展示用户从"首页"到"支付"的整体路径,再用热力图展示"商品详情页"内各区域的点击分布。这样既能看清宏观路径,又能深入微观细节。
场景:供应链资金流向分析
先用桑基图展示资金从"总部→各区域→各门店"的流向,再用热力图展示各门店的"资金使用效率"分布。这种组合方式在多个项目中帮助客户同时解决了"资金去哪了"和"资金用得怎么样"的问题。
不同工具在生成这两种图表时的效率和能力差异很大。我根据实际使用经验,制作了一个工具对比表:
| 工具 | 学习成本 | 平均生成时间 | 交互性 | 适合场景 |
|---|---|---|---|---|
| Excel插件 | 低(约2小时) | 5分钟 | 低 | 快速原型、简单分析 |
| ECharts | 中(约8小时) | 15分钟 | 高 | Web端交互展示 |
| Tableau | 中高(约20小时) | 10分钟 | 中 | 企业级数据分析 |
| Python(Matplotlib/Plotly) | 高(约40小时) | 20分钟 | 中高 | 定制化分析、批量生成 |

2023年,我参与了一个电商平台的数据分析项目,核心目标是优化用户从"进入首页"到"完成购买"的转化路径。团队最初使用桑基图展示所有用户路径,但效果很差。我接手后,通过三个步骤彻底解决了问题。
原始桑基图包含25个节点和80多条路径,整体呈现为一团乱麻。经过分析,我发现了三个核心问题:
第一步:合并节点
将10个商品详情页节点合并为1个"商品详情页"节点,节点数从25个减少到12个。
第二步:过滤低价值路径
将流量占比低于1%的路径过滤掉,路径数从80多条减少到20条核心路径,覆盖了95%以上的用户流量。
第三步:统一色系
按"来源"统一色系:来自"首页"的路径使用蓝色系,来自"搜索"的路径使用绿色系,来自"外部链接"的路径使用橙色系。
优化后的桑基图让团队在3秒内就能识别出核心转化路径,而之前需要花5分钟才能勉强看懂。更重要的是,团队基于优化后的图表发现了之前被忽略的关键洞察:从"搜索"进入的用户,虽然占比只有30%,但付费转化率比从"首页"进入的用户高出40%。这个洞察直接推动了"搜索入口优化"的专项项目。

另一个让我印象深刻的案例来自一家SaaS企业。他们想优化产品首页的布局,但不知道用户到底在关注什么。我帮他们用热力图完成了从"数据采集"到"方案落地"的全流程。
我们使用热力图工具采集了用户在产品首页的点击数据,总共收集了10万次点击。但原始数据存在两个问题:
针对这两个问题,我做了以下处理:
优化后的热力图揭示了三个关键洞察:
(1)搜索框点击密度是导航菜单的3倍,但搜索框位置偏下,用户需要滚动才能看到。团队将搜索框移到顶部固定位置,点击率提升了22%。
(2)"免费试用"按钮的点击密度低于预期,原因是按钮颜色与背景色对比度不足。团队调整了按钮颜色,点击率提升了15%。
(3)页面底部的"客户案例"区域点击率极低,说明用户对此内容不感兴趣。团队将该区域替换为"产品功能介绍",整体页面停留时间提升了18%。
优化后的首页上线后,我们进行了A/B测试:实验组的整体转化率(注册→试用)提升了12%,每位访客的平均页面停留时间增加了25秒。这些数据直接证明了热力图驱动的页面优化策略的有效性。

基于多年经验,我总结出桑基图和热力图的高级设计原则,这些原则是很多通用教程中不会提到的。
(1)节点排序有讲究
桑基图的节点排序会影响观众的阅读效率。我建议按"流量大小"排序:流量大的节点放在上方,流量小的放在下方。这样观众可以自然地从上到下阅读,符合"注意力自上而下"的视觉习惯。
(2)"空路径"的处理
当某些路径的流量为零时,很多人直接删除这些路径。但我建议保留"空路径"的占位,用虚线或浅色表示,这样观众可以知道"这里本来有一条路径,但流量为零",而不是"这里根本没有路径"。
(3)交互式展示的边界
很多工具支持桑基图的交互式展示(如鼠标悬停显示数值、点击展开子路径)。但交互式展示也有边界:当节点超过20个时,交互式反而会降低效率,因为观众需要不断点击才能获取完整信息。此时建议使用"分层展示":先展示主干路径,再单独展开某个分支。
(1)色阶的"心理映射"
不同颜色会引起不同的心理映射:红色通常代表"高"或"热",蓝色通常代表"低"或"冷"。如果你展示的是"温度"数据,使用红-蓝色阶是合理的;但如果你展示的是"销售额",使用红-蓝色阶会导致"红色代表高销售额、蓝色代表低销售额"的映射关系,但很多观众会下意识地认为"红色代表危险"、"蓝色代表安全"。我建议销售数据使用"深绿-浅绿"色阶,因为绿色通常代表"正向"。
(2)网格线的处理
热力图的网格线是"视觉辅助"还是"视觉噪音"?答案是:取决于数据密度。当矩阵维度小于10×10时,网格线可以帮助观众定位;当维度大于10×10时,网格线会变成视觉噪音。我建议在维度较大时使用间隔网格线(每5行或5列显示一条),或者完全去掉网格线,只保留色块。
(3)"数据-颜色"映射的校验
在生成热力图之前,我建议先做一个"色阶校验":随机选取3-5个数据点,让团队成员猜测其数值,然后与实际值对比。如果猜测误差超过20%,说明色阶映射不够直观,需要调整。
在数据分析领域,有一个趋势需要警惕:为了"炫技"而使用高级图表。我见过很多团队用桑基图展示"月度销售趋势",用热力图展示"产品分类占比"。这些场景用柱状图或饼图就能清晰表达,使用高级图表反而增加了不必要的理解成本。
我的原则是:能用简单图表解决的问题,绝不使用高级图表。高级图表应该在"简单图表无法有效表达"的场景中使用,而不是为了图表的"高级感"。

经过以上分析,我想重申本文的核心观点:选对图表比画好图表更重要,设计比技术更重要,决策比展示更重要。
读完本文后,你可以立即执行以下步骤:
数据分析可视化不是"艺术创作",而是"信息传递"。桑基图和热力图是强大的工具,但只有在正确的场景、正确的设计下,才能真正发挥价值。我希望本文能帮助你在下次做报告时,自信地说出"这个场景我选桑基图,因为需要展示转化路径;那个场景我选热力图,因为需要展示分布密度"。
如果你在实际工作中遇到图表选择的困惑,欢迎在评论区分享你的案例,我会根据我的经验给出具体的建议。数据分析的路很长,选对工具只是第一步,但也是最关键的一步。
我最近在做一个用户行为分析报告,领导让我用高级图表展示用户从注册到购买的路径,还要求展示不同渠道的转化率。我同事推荐用桑基图,但我觉得热力图也能展示转化关系?到底该怎么选?有没有一个简单的判断标准,能让我在下次报告时直接套用?
这个问题我踩过不止一次坑。先说结论:桑基图的核心是展示“流”的路径和流量大小,热力图的核心是展示“密度”或“强度”的分布。两者最本质的区别在于数据类型。我自己的判断框架分三步: 1. 你的数据是否有明确的“起点→终点”路径?比如用户从A页面到B页面再到C页面,或者资金从部门X流向部门Y。
如果有,且路径数量不超过10个主要节点,桑基图是首选。2. 你的数据是否是一个矩阵或网格?比如不同产品在不同地区的销量、不同时间段用户活跃度、不同特征之间的相关性。如果是,热力图更合适。3. 如果数据既包含路径又包含密度?比如电商购买路径中,每个节点上的停留时间。
这时可以考虑组合:用桑基图展示路径,节点内嵌热力图色块表示停留时间。举一个真实案例:我给一家零售企业做用户流失分析。一开始他们用桑基图展示了所有页面跳转,结果节点超过20个,图变成一团乱麻,根本看不清主要流失路径。
后来我强制他们只保留Top 5入口和Top 3出口,节点缩减到8个,桑基图才真正发挥价值。而他们同时想分析不同时间段(周一到周日×小时)的订单密度,用热力图一张图就展示了周末晚上订单最密集的模式。所以,决策框架就是一个流程图:数据是路径序列吗?→是→节点数≤10?→是→用桑基图;数据是矩阵分布吗?
→是→用热力图。两者都满足?→组合使用或选其中一个为主。
我按照网上的教程用ECharts画了一个桑基图,展示用户在不同页面之间的流转,结果领导说图太乱看不懂。我自己也觉得颜色花里胡哨,线条交叉严重。请问在设计桑基图时,有没有什么具体的避坑指南?比如节点数量、颜色、流向顺序该注意什么?
我至少画过30张桑基图,踩过的坑可以列一个清单。最致命的三个错误: 第一,节点数量失控。我见过有人把20多个页面节点全塞进去,结果图就像蜘蛛网。我的经验:节点数超过10个就必须做分组或降维。比如把“商品详情页-查看评价-查看规格-加入购物车”合并成一个“商品详情页”节点,流量用累加值。
如果非要展示细节,用交互式(点击展开子节点)。第二,颜色混乱。很多人喜欢给每个节点分配不同颜色,导致整张图像一个彩虹爆炸。正确做法:按来源或目标统一色系,比如所有入口节点用蓝色渐变,中间节点用灰色,出口节点用橙色。这样眼睛能快速跟随路径。第三,流向方向不统一。
桑基图默认从左到右,但如果你把入口放在右边,出口放在左边,读者会非常困惑。保持所有路径方向一致,从左下到右上或者从上到下都可以,但不要混用。举个例子:我帮一家SaaS公司做免费版到付费版的转化分析。他们原始数据有15个功能节点,我合并成3个主要阶段:注册激活→功能探索→付费转化。
节点数降到6个,颜色用蓝色(入口)、灰色(中间)、绿色(成功)。最后这张图清晰展示了70%的用户在功能探索阶段流失,老板直接拍板优化新手引导。
我用Excel自带的热力图功能做了一张产品销售热度图,选了个彩虹色阶,结果同事说颜色误导判断,根本看不出哪个区域销量高。我查了资料说彩虹色阶不好,但具体该用什么色阶?能不能推荐几个色阶方案,并说明在什么场景下用?
色阶选错,热力图就是垃圾图。这绝不是危言耸听。我2019年给一家连锁超市做门店热力图,一开始用了彩虹色阶(红橙黄绿蓝紫),结果老板说“红色区域销量高还是低?”因为红色在彩虹色阶里可能代表高值,也可能代表某个中间值,完全误导。后来我换成单色顺序色阶(从浅蓝到深蓝),老板一眼就看出深蓝色门店销量最高。
三种色阶场景: 1. 顺序色阶(单色渐变,如浅灰到深蓝),适用于数值只有大小关系,没有正负之分,比如销量、温度、密度。2. 发散色阶(如红-白-蓝),适用于数值有正负或与基准值比较,比如利润率对比(正利润红色,负利润蓝色)。
定类色阶(不同颜色代表不同类别),适用于热力图展示分类数据,但本质上已经不是传统热力图了。避坑清单: – 绝对不要用彩虹色阶(jet colormap)。它会导致色感差异与实际数值差异不匹配,而且色盲用户无法识别。- 至少留出5个色阶等级,太多会看不清,太少会丢失细节。
如果是面向业务人员的报告,我会用热力图,并在每个单元格上显示数值标签,因为很多业务方只看数字,不看颜色。
我是一家电商公司的数据分析师,想深度分析用户从进店到下单的完整行为路径。我试过单独用桑基图,但只能看到流量分布,看不到每个步骤上的时间密度;用热力图只能看到整体分布,看不到路径关系。有没有办法把两者结合起来?能不能分享一个你实际做过的案例,包括数据准备、图表设计和最终洞察?
组合使用桑基图和热力图是高级玩法,我去年帮一家月销千万的电商品牌做过,效果非常好。案例背景:该店铺有5个主要流量入口(搜索、推荐、广告、社交、直接),用户在店铺内经历4个步骤(首页→商品详情→加入购物车→下单),最终成交。他们想找出哪个入口的转化效率最高,以及用户在每个步骤的停留时间分布。
我的方案: 1. 用桑基图展示流量路径。入口节点5个,中间步骤节点4个,出口节点1个(下单),共10个节点。颜色:入口蓝色,中间灰色,出口绿色。流量宽度表示人数。2. 同时,在桑基图的每个节点(代表步骤)旁边,嵌入一个热力图,展示该节点在不同时间段(早中晚)的停留时间密度。
热力图的颜色越深,表示停留时间越长(红色=长,蓝色=短)。具体实现:我用Python的plotly库,它可以同时绘制桑基图和热力图,但需要手动布局。
数据准备时,需要两个数据集: – 路径数据:source, target, value(用户数) – 时间密度数据:每个节点在不同时间段的平均停留时间(秒) 关键洞察: – 桑基图显示,推荐入口的流量最大,但转化率只有2%;而搜索入口流量小,但转化率达8%。
这个组合图让老板一目了然,直接拍板调整投放策略,次月ROI提升了30%。如果你用非代码工具,可以先在Tableau中画桑基图(需要整理数据),再用另一张热力图做联动,通过筛选器实现交互。


读者评论
文章一针见血,很多团队确实只看图表好不好看,结果老板一句“这张图想说明什么”就尴尬了。我自己的经验是:桑基图必须控制节点数,热力图一定要选对色阶,否则再炫也没用。
作为经常看报告的业务方,深有同感。以前团队拿彩虹色阶的热力图给我看,我根本分不清数值高低,后来换成单色渐变才清晰。建议每个数据分析师都把这篇文章的框架学一下。
确实,桑基图和热力图的核心区别就是“流”和“密度”。我几年前用热力图看用户行为路径,结果完全看不出流向,后来才明白应该用桑基图。文章里提到的“路径数量适中”和“流量差异明显”两个判断标准很实用。
做可视化设计两年了,文中提到的“按来源统一色系”和“节点过多分层展示”都是踩过坑才懂的道理。另外补充一点:热力图的单元格大小也影响可读性,建议结合交互式悬停展示数值。
这篇文章很适合作为团队的内部培训材料。我打算把那个决策框架打印出来贴在工位旁边,以后做图表前先问三个问题。另外,工具对比表也很实在,Python虽然灵活但学习成本高,小团队推荐先用ECharts快速出图。