教运营使用DeepSeeK+ECharts画桑吉图
不会Python,也想画出漂亮的桑吉图?别急,这事儿其实没那么复杂。很多数据分析师、产品经理和运营同学,日常工作中会SQL、懂业务,但一到Python就卡壳。想用桑吉图直观展示用户行为路径,难道就非得硬啃代码?当然不是。用DeepSeek加ECharts,分分钟搞定,而且效果一点不逊色。
关于桑吉图的原理,之前的文章已经详细聊过,核心就是记录数据从一个节点流向另一个节点。比如,从“某宝首页”到“搜索”,再到“搜索结果页”,每一段的流量都清晰可见。今天,我们就直接上手,一步步把这个图做出来。先来说说几个关键判断:整个流程的核心,在于把原始数据转换成ECharts能识别的格式,而DeepSeek就是那个负责格式转换的“翻译官”。

了解ECharts中的桑吉图
第一步,先到ECharts官网找到桑吉图的示例,在官方文档里很容易就能翻到。示例左侧是代码,右侧是可视化结果,这其实就是我们要参照的模版。理解桑吉图的关键,就是抓住“点”和“线”。左边
data
links
弄明白这个逻辑之后,接下来的任务就很清晰了:
- 把所有出现在路径中的整理出来,这就是ECharts里的data数组;
节点
- 把所有及对应的
流向
整理出来,这就是links数组,其中source是起点,target是终点,value是具体数值;流量值
- 至于格式怎么快速转换,交给DeepSeek来处理就好。
如何制作
生成data数据
原始数据通常都在Excel里。如果会Excel,直接用删除重复值功能就能拿到所有节点。如果不太熟练,用DeepSeek也一样方便。拿下面这张用户行为数据表举个例子:
向左滑动,看全部数据
第一个页面 | 第二个页面 | 第三个页面 | 第四个页面 | 用户量-万 |
| 某宝首页 | 搜索 | 历史搜索 | 搜索结果页 | 77 |
| 某宝首页 | 搜索 | 历史搜索 | 跳出 | 706 |
| 某宝首页 | 搜索 | 搜索发现 | 搜索结果页 | 56 |
| 某宝首页 | 搜索 | 搜索发现 | 跳出 | 981 |
| 某宝首页 | 聚划算 | 每日大牌 | 物品详情页 | 871 |
| 某宝首页 | 聚划算 | 每日大牌 | 跳出 | 348 |
| 某宝首页 | 聚划算 | 直播 | 观看直播 | 638 |
| 某宝首页 | 聚划算 | 直播 | 跳出 | 698 |
| 某宝首页 | 聚划算 | 直播 | 我的页面 | 912 |
| 某宝消息页 | 交易物流 | 物流详情 | 某旗舰店 | 651 |
| 某宝消息页 | 交易物流 | 物流详情 | 跳出 | 627 |
| 某宝消息页 | 活动优惠 | 权益过期提醒 | 跳出 | 380 |
我们需要从这四列页面名称里,提取出所有不重复的节点。DeepSeek提示词可以这样写:
请帮我把下面所有的文本去重,
,生成一列数据:不要按照行去重,是所有的文本
某宝首页 搜索 历史搜索 搜索结果页
某宝首页 搜索 历史搜索 跳出
某宝首页 搜索 搜索发现 搜索结果页
某宝首页 搜索 搜索发现 跳出
某宝首页 聚划算 每日大牌 物品详情页
某宝首页 聚划算 每日大牌 跳出
某宝首页 聚划算 直播 观看直播
某宝首页 聚划算 直播 跳出
某宝首页 聚划算 直播 我的页面
某宝消息页 交易物流 物流详情 某旗舰店
某宝消息页 交易物流 物流详情 跳出
某宝消息页 活动优惠 权益过期提醒 跳出
结果:
某宝首页
某宝消息页
搜索
聚划算
交易物流
活动优惠
历史搜索
搜索发现
每日大牌
直播
物流详情
权益过期提醒
搜索结果页
跳出
物品详情页
观看直播
我的页面
某旗舰店
拿到这些唯一值后,下一步是把它转换成ECharts中data数组的格式:
DeepSeek提示词
请帮我把下面的文本:
某宝首页
某宝消息页
搜索
聚划算
交易物流
活动优惠
历史搜索
搜索发现
每日大牌
直播
物流详情
权益过期提醒
搜索结果页
跳出
物品详情页
观看直播
我的页面
某旗舰店
改成这种格式
data: [
{ name: 'a' },
{ name: 'b' },
{ name: 'a1' }
]
结果
data: [
{ name: '某宝首页' },
{ name: '某宝消息页' },
{ name: '搜索' },
{ name: '聚划算' },
{ name: '交易物流' },
{ name: '活动优惠' },
{ name: '历史搜索' },
{ name: '搜索发现' },
{ name: '每日大牌' },
{ name: '直播' },
{ name: '物流详情' },
{ name: '权益过期提醒' },
{ name: '搜索结果页' },
{ name: '跳出' },
{ name: '物品详情页' },
{ name: '观看直播' },
{ name: '我的页面' },
{ name: '某旗舰店' }
]
生成links
生成links数据会稍微复杂一点,因为需要明确每一步的起点(source)、终点(target)和流量(value)。一个高效的方法是在Excel里用透视表,把“上一个页面”和“下一个页面”交叉统计,这样source、target和value就自动出来了。把整理好的数据粘贴出来,然后再次交给DeepSeek来统一格式。
DeepSeek提示词
请帮我把下面的数据
某宝首页 聚划算 3467
某宝首页 搜索 1820
某宝消息页 活动优惠 380
某宝消息页 交易物流 1278
活动优惠 权益过期提醒 380
交易物流 物流详情 1278
聚划算 每日大牌 1219
聚划算 直播 2248
搜索 历史搜索 783
搜索 搜索发现 1037
历史搜索 搜索结果页 77
历史搜索 跳出 706
每日大牌 跳出 348
每日大牌 物品详情页 871
权益过期提醒 跳出 380
搜索发现 搜索结果页 56
搜索发现 跳出 981
物流详情 某旗舰店 651
物流详情 跳出 627
直播 观看直播 638
直播 跳出 698
直播 我的页面 912
改成这种格式:
links: [
{ source: 'a', target: 'a1', value: 5 },
{ source: 'e', target: 'b', value: 3 },
{ source: 'a', target: 'b1', value: 3 },
{ source: 'b1', target: 'a1', value: 1 },
{ source: 'b1', target: 'c', value: 2 },
{ source: 'b', target: 'c', value: 1 }
]
结果
links: [
{ source: '某宝首页', target: '聚划算', value: 3467 },
{ source: '某宝首页', target: '搜索', value: 1820 },
{ source: '某宝消息页', target: '活动优惠', value: 380 },
{ source: '某宝消息页', target: '交易物流', value: 1278 },
{ source: '活动优惠', target: '权益过期提醒', value: 380 },
{ source: '交易物流', target: '物流详情', value: 1278 },
{ source: '聚划算', target: '每日大牌', value: 1219 },
{ source: '聚划算', target: '直播', value: 2248 },
{ source: '搜索', target: '历史搜索', value: 783 },
{ source: '搜索', target: '搜索发现', value: 1037 },
{ source: '历史搜索', target: '搜索结果页', value: 77 },
{ source: '历史搜索', target: '跳出', value: 706 },
{ source: '每日大牌', target: '跳出', value: 348 },
{ source: '每日大牌', target: '物品详情页', value: 871 },
{ source: '权益过期提醒', target: '跳出', value: 380 },
{ source: '搜索发现', target: '搜索结果页', value: 56 },
{ source: '搜索发现', target: '跳出', value: 981 },
{ source: '物流详情', target: '某旗舰店', value: 651 },
{ source: '物流详情', target: '跳出', value: 627 },
{ source: '直播', target: '观看直播', value: 638 },
{ source: '直播', target: '跳出', value: 698 },
{ source: '直播', target: '我的页面', value: 912 }
]
生成桑吉图
现在,把上面生成的data和links数据,复制到ECharts官方示例中,替换掉对应位置的内容即可。ECharts还提供了两个非常实用的功能:一是可以直接下载高清截图,二是可以一键分享链接,其他人不用登录就能直接查看结果。