Python Pyecharts绘制桑基图分析用户行为路径
作者:蚂蚁ailing 时间:2022-06-07 02:47:57
桑基图,它的核心是对不同点之间,通过线来连接。线的粗细代表流量的大小。很多工具都能实现桑基
图,比如:Excel、tableau,我们今天要用 Pyecharts 来绘制。
因为没有用户行为路径相关的公开数据,所以本次实现可视化是根据泰坦尼克号,其生存与遇难的人的
数据,来分析流向路径。学会思路,你也可以换成自己公司的用户行为埋点数据。
读取数据
数据来源:https://www.kaggle.com/c/titanic
from pyecharts import options as opts
from pyecharts.charts import Sankey
import pandas as pd
data = pd.read_excel('/Users/wangwangyuqing/Desktop/train.xlsx')
data
整理数据结构:父类→子类→值
从父类到子类,每相邻的两个分类变量都需要计算,使用 Pandas 中数据透视表,计算后的数据纵向合并成三列。
lis = data.columns.tolist()[:-1]
lis1 = lis[:-1]
lis2 = lis[1:]
data1 = pd.DataFrame()
for i in zip(lis1,lis2):
datai = data.pivot_table('ID',index=list(i),aggfunc='count').reset_index()
datai.columns=[0,1,2]
data1 = data1.append(datai)
data1
生成节点数据
需要把所有涉及到的节点去重规整在一起。列表内嵌套字典的形式去重汇总。
# 生成nodes
nodes = []
# 先添加几个顶级的父节点
nodes.append({'name':'C港口'})
nodes.append({'name':'Q港口'})
nodes.append({'name':'S港口'})
# 添加其他节点
for i in data1[1].unique():
dic = {}
dic['name'] = i
nodes.append(dic)
nodes
组织数据:定义节点和流量
数据从哪里流向哪里,流量(值)是多少,循环+字典来组织数据
links = []
for i in data1.values:
dic = {}
dic['source'] = i[0]
dic['target'] = i[1]
dic['value'] = i[2]
links.append(dic)
links
数据可视化
c = (
Sankey(init_opts=opts.InitOpts(width="1200px", height="800px",theme='westeros'))
.add(
"",
nodes=nodes,
links=links,
linestyle_opt=opts.LineStyleOpts(opacity=0.2, curve=0.5, color="source"),
label_opts=opts.LabelOpts(position="right"),
)
.set_global_opts(title_opts=opts.TitleOpts(title="桑基图"))
.render("/Users/wangwangyuqing/Desktop/image.html")
)
桑基图是分析用户路径的有效方法之一,能非常直观地展现用户旅程,帮助我们进一步确定转化漏斗中的关键步骤,发现用户的
流失点,找到有价值的用户群体,看用户主要流向了哪里,发现用户的兴趣点以及被忽略的产品价值,寻找新的机会。
来源:https://www.cnblogs.com/123456feng/p/16210997.html
标签:Python,Pyecharts,桑基图,用户行为
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
CSS扫盲(一): padding
2009-08-04 17:58:00
详谈配置phpstorm完美支持Codeigniter(CI)代码自动完成(代码提示)
2023-09-06 14:34:52
![](https://img.aspxhome.com/file/2023/4/55644_0s.jpg)
关于从MySQL转向ADODB的方法
2011-06-02 12:05:00
Python爬虫爬取微信朋友圈
2021-11-12 17:38:14
![](https://img.aspxhome.com/file/2023/1/76811_0s.jpg)
17个asp常用的正则表达式
2008-01-15 18:58:00
bootstrap实现点击删除按钮弹出确认框的实例代码
2023-08-28 09:36:20
![](https://img.aspxhome.com/file/2023/2/56242_0s.png)
PHP convert_cyr_string()函数讲解
2023-06-05 00:43:42
![](https://img.aspxhome.com/file/2023/4/55394_0s.png)
django序列化serializers过程解析
2022-09-26 22:22:36
简单的淡入淡出图片轮换效果
2009-05-22 18:38:00
python版本单链表实现代码
2022-12-06 16:49:26
python检测服务器端口代码实例
2023-07-07 06:34:14
如何基于pythonnet调用halcon脚本
2022-09-27 16:34:23
![](https://img.aspxhome.com/file/2023/2/67372_0s.png)
AJAX实现延时顺序请求多个URL
2007-12-06 18:32:00
Pandas:DataFrame对象的基础操作方法
2023-07-20 16:13:19
asp学习入门基本语法知识
2007-11-07 14:02:00
微信公众平台网页授权获取用户基本信息中授权回调域名设置的变动
2023-11-14 14:01:31
![](https://img.aspxhome.com/file/2023/3/88293_0s.jpg)
Python打印scrapy蜘蛛抓取树结构的方法
2022-01-16 03:46:18
关于python爬虫应用urllib库作用分析
2023-11-02 12:59:43
![](https://img.aspxhome.com/file/2023/9/63249_0s.png)
asp javascript picasa相册外链批量导出
2011-03-30 10:52:00
解析smarty模板中类似for的功能实现
2023-11-15 12:53:40