網站首頁 編程語言 正文
桑基圖,它的核心是對不同點之間,通過線來連接。線的粗細代表流量的大小。很多工具都能實現桑基
圖,比如: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
相關推薦
- 2022-12-12 使用PlatformView將?Android?控件view制作成Flutter插件_Android
- 2022-10-26 python的django寫頁面上傳文件及遇到的問題小結_python
- 2022-04-05 python中時間轉換錯誤:時間戳轉換|帶有時區的轉換 如何解析ISO 8601格式的日期?
- 2022-04-05 macOS下安裝JDK11和配置環境變量
- 2023-03-25 Android?Jetpack組件ViewModel基本用法詳解_Android
- 2022-11-16 Python中dataclass庫實例詳解_python
- 2022-07-21 element 中loading顏色的修改
- 2022-08-15 gin框架中使用websocket發送消息及群聊
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支