用户行为路径多层级高维度分布可视化:sunburst原理及实践

如需转载,请给作者留言,并保留作者和原文信息。

sunburst并不算一种常见的可视化图型,但它却是一种很契合数据可视化原则的图形:将复杂的数据用简单形象的图形展示、信息量大、美观、易读。也是我个人推崇的一种可视化模型。

用户行为路径多层级高维度分布可视化:sunburst原理及实践_第1张图片
sunburst plot from google

sunburst plot看起来跟圆环图、饼图很像,实际上要复杂得多——因为sunburst的每一个扇形还能继续往下层划分。这就成为了一种多层次、多维度的分布可视化方法了。

案例分析:微视用户分析分析

用户行为路径示例

比如上图是一个微视用户分析路径的demo(当然实际数据一定复杂复多),不同层级表行为的关系,数字表行为发生数量。

我们先把这个非结构数据转化为结构化数据:

用户行为序列 数量
进关注页-关注用户 800
进关注页-放弃关注 100
进推荐页-看完-点赞-关注 600
进推荐页-看完-点赞-分享 400
进推荐页-看完-点赞-评论 500
进推荐页-看完-评论-关注 300
进推荐页-看完-分享 200
进推荐页-看完-点开音乐 300
进推荐页-不看完-刷过去 900
进推荐页-不看完-点发现 600
进推荐页-不看完-点消息 300
进推荐页-不看完-点我的 200
进频道页-进明星页 500
进频道页-进游戏页 500
进频道页-进其他页 2000
自拍-分享-分享至微信-分享好友 900
自拍-分享-分享至微信-分享群-500人群 800
自拍-分享-分享至微信-分享群-300人群 1200
自拍-分享-分享至微信-分享群-100人群 3000
自拍-分享-分享至微信-分享朋友圈 2000
自拍-分享-分享至微信-分享微博 1500
自拍-分享-分享至微信-APP内分享 1000
自拍-分享-分享至微信-不分享 2000

然后产出一张sunburst diagram:

> library(sunburstR)
> library(dplyr)
> 
> ws <- read.csv("SUNBURST.csv")
> ws
                          用户行为序列 数量
1                    进关注页-关注用户  800
2                    进关注页-放弃关注  100
3              进推荐页-看完-点赞-关注  600
4              进推荐页-看完-点赞-分享  400
5              进推荐页-看完-点赞-评论  500
6              进推荐页-看完-评论-关注  300
7                   进推荐页-看完-分享  200
8               进推荐页-看完-点开音乐  300
9               进推荐页-不看完-刷过去  900
10              进推荐页-不看完-点发现  600
11              进推荐页-不看完-点消息  300
12              进推荐页-不看完-点我的  200
13                   进频道页-进明星页  500
14                   进频道页-进游戏页  500
15                   进频道页-进其他页 2000
16       自拍-分享-分享至微信-分享好友  900
17 自拍-分享-分享至微信-分享群-500人群  800
18 自拍-分享-分享至微信-分享群-300人群 1200
19 自拍-分享-分享至微信-分享群-100人群 3000
20     自拍-分享-分享至微信-分享朋友圈 2000
21       自拍-分享-分享至微信-分享微博 1500
22      自拍-分享-分享至微信-APP内分享 1000
23         自拍-分享-分享至微信-不分享 2000
> 
> ws %>%
+   sunburst(count = T,sumNodes = T,withD3 = T)
用户行为路径多层级高维度分布可视化:sunburst原理及实践_第2张图片
sunburst-1

可见图中展示:一级行为自拍数量为12k,占总行为21k的60.2%。我们来验证一下是否是正确的:

> library(stringr)
> ws %>% filter(用户行为序列 %>% str_detect("自拍")) %>% select(数量) %>% sum # 用中文作变量名很不专业,不要学我
[1] 12400
> sum(ws$数量)
[1] 20600
> zipai <- ws %>% filter(用户行为序列 %>% str_detect("自拍")) %>% select(数量) %>% sum
> zipai
[1] 12400
> zipai/sum(ws$数量)
[1] 0.6019417

跟sunburst图上显示的一致。


用户行为路径多层级高维度分布可视化:sunburst原理及实践_第3张图片
sunburst_2

也可以看任意一层级的行为统计数和比例。

当然上面的图形是用sunburstR包生成的,如果直接用d3.js画,会有更好的交互效果。

总结

以上的案例给出了什么样的启示?

追踪用户行为路径,sunburst图不仅可以展示各种行为的比例,也可以对不同层级的行为自动汇总,计算比例,所以作为一个(数据)产品经理,首先梳理、归纳、抽象出用户的行为路径,sunburst是一个强大的行为分析可视化工具。

进一步抽象,任何一类多层次、高维度、且互斥的分类数据结构,都可以用sunburst diagram来可视化各层级比例关系。

你可能感兴趣的:(用户行为路径多层级高维度分布可视化:sunburst原理及实践)