Python Pyecharts绘制桑基图分析用户行为路径

 更新时间:2022年05月11日 16:39:05   作者:蚂蚁ailing  
这篇文章主要为大家介绍了Python Pyecharts绘制桑基图分析用户行为路径,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

桑基图,它的核心是对不同点之间,通过线来连接。线的粗细代表流量的大小。很多工具都能实现桑基

图,比如: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")
)

桑基图是分析用户路径的有效方法之一,能非常直观地展现用户旅程,帮助我们进一步确定转化漏斗中的关键步骤,发现用户的

流失点,找到有价值的用户群体,看用户主要流向了哪里,发现用户的兴趣点以及被忽略的产品价值,寻找新的机会。

以上就是Python Pyecharts绘制桑基图分析用户行为路径的详细内容,更多关于Pyecharts绘制桑基图的资料请关注脚本之家其它相关文章!

相关文章

  • 详解Python如何使用并发模型编程

    详解Python如何使用并发模型编程

    这篇文章主要为大家详细介绍了如何让 Python 能够同时处理多个任务,即如何使用并发模型编程,文中的示例代码讲解详细,需要的可以参考一下
    2023-05-05
  • python 接收处理外带的参数方法

    python 接收处理外带的参数方法

    今天小编就为大家分享一篇python 接收处理外带的参数方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-12-12
  • 浅谈tensorflow与pytorch的相互转换

    浅谈tensorflow与pytorch的相互转换

    本文主要介绍了简单介绍一下tensorflow与pytorch的相互转换,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-06-06
  • Python中变量交换的例子

    Python中变量交换的例子

    这篇文章主要介绍了Python中变量交换的例子,Python中的变量交换不需要临时变量,一个等号即可实现变量的交换,非常方便,需要的朋友可以参考下
    2014-08-08
  • python中asyncio异步编程学习

    python中asyncio异步编程学习

    这篇文章主要介绍了python中asyncio异步编程学习,内部就是基于协程实现的异步编程,如果想研究异步编程的同学,要仔细看哦
    2021-04-04
  • Python进阶之自定义对象实现切片功能

    Python进阶之自定义对象实现切片功能

    这篇文章主要介绍了Python进阶之自定义对象实现切片功能,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-01-01
  • Python批量将csv文件转化成xml文件的实例

    Python批量将csv文件转化成xml文件的实例

    将 csv 格式转换成xml格式有许多方法,可以用数据库的方式,也有许多软件可以将 csv 转换成xml。但是比较麻烦,本文利用 Python 一键批量将 csv 文件转化成 xml 文件。
    2021-05-05
  • 解决Jupyter notebook中.py与.ipynb文件的import问题

    解决Jupyter notebook中.py与.ipynb文件的import问题

    这篇文章主要介绍了解决Jupyter notebook中.py与.ipynb文件的import问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-04-04
  • Python实现PDF到Word文档的高效转换

    Python实现PDF到Word文档的高效转换

    这篇文章主要为大家详细介绍了如何使用Python编程语言,结合库和工具,将PDF文件转换为可编辑的Word文档,使文档的编辑变得方便高效,需要的可以参考下
    2024-01-01
  • Python配置pip国内镜像源的实现

    Python配置pip国内镜像源的实现

    这篇文章主要介绍了Python配置pip国内镜像源的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08

最新评论