Python实现漏斗图的绘制
说明:代码运行环境为 Win10+Python3+jupyter notebook
Python绘制漏斗图主要用到的是pyecharts包,所以要保证电脑上已经安装了pyecharts包。
漏斗图简介:
漏斗图常用于用户行为的转化率分析,例如用漏斗图分析用户购买流程中各个环节的转化率。但是单一的漏斗图反映的数据过于单一,无法比较,也就失去了分析的意义。对于用户购买流程,我们通过把流程优化前后的漏斗图放在一起,进行比较分析,得出相关结论。而本文只谈利用pyecharts包实现漏斗图的绘制,不涉及具体分析。
漏斗图绘制示例:
from pyecharts import Funnel # 从pyecharts包中导出创建漏斗图的函数
import pandas as pd
# 导入创建漏斗图所需要的数据
data = pd.read_excel('examples/funnel.xls','Sheet1')
data的表结构如下图所示:
(数据来源:《谁说菜鸟不会数据分析·入门篇》)
attr = data.环节
values = data.总体转化率
funnel1=Funnel('总体转化漏斗图',title_pos='center')
funnel1.add(name='环节', # 指定图例名称
attr=attr, # 指定属性名称
value=values, # 指定属性所对应的值
is_label_show=True, # 确认显示标签
label_formatter='{c}*100'+'%', # 指定标签显示的方式
# pyecharts包的文档中指出,当label_formatter='{d}'时,标签以百分比的形式显示.
# 但我这样做的时候,发现显示的百分比与原始数据对应不上,只好用上面那种显示形式
label_pos='inside', # 指定标签的位置
legend_orient='vertical', # 指定图例显示的方向
legend_pos='right') # 指定图例的位置
funnel1.render()
funnel1
上述代码绘制的图形为:
用户购买流程优化后的漏斗图:
attr = data.环节
# 假设产品部门对用户购买流程进行了优化改进,
# 使得支付订单的整体转化率由0.2增加到了0.25,
# 完成交易的整体转化率由0.17增加到了0.2
values = [1.00,0.40,0.30,0.25,0.20]
# 绘制交易流程优化后的转化漏斗图
funnel2 = Funnel('优化后的总体转化漏斗图',title_pos='center',width=1000,height=500)
funnel2.add(name='环节',
attr=attr,
value=values,
is_label_show=True,
label_formatter='{c}*100'+'%',
label_pos='inside',
legend_orient='vertical',
legend_pos='right')
funnel2.render()
funnel2
上述代码绘制的图形为:
参考资料:
http://pyecharts.org/#/zh-cn/charts_base
《网站分析实战》——王彦平、吴盛峰
PS:本文为博主原创文章,转载请注明出处。