Python Pyecharts繪制桑基圖分析用戶行為路徑

桑基圖,它的核心是對不同點之間,通過線來連接。線的粗細代表流量的大小。很多工具都能實現桑基

圖,比如:Excel、tableau,我們今天要用 Pyecharts 來繪制。

因為沒有用戶行為路徑相關的公開數據,所以本次實現可視化是根據泰坦尼克號,其生存與遇難的人的

數據,來分析流向路徑。學會思路,你也可以換成自己公司的用戶行為埋點數據。

讀取數據

數據來源:https://www.kaggle.com/c/titanic

Python學習交流Q群:903971231####
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 中數據透視表,計算後的數據縱向合並成三列。

Python學習交流Q群:903971231###
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繪制桑基圖的資料請關註LevelAH其它相關文章!

推薦閱讀: