本文主要用到的是pyecharts包,所以要保证电脑上已经安装了pyecharts包。
漏斗图简介:
漏斗图常用于用户行为的转化率分析,例如用漏斗图分析用户购买流程中各个环节的转化率。但是单一的漏斗图反映的数据过于单一,无法比较,也就失去了分析的意义。对于用户购买流程,我们可以通过把流程优化前后的漏斗图放在一起,进行比较分析,得出相关结论。本文仅涉及漏斗图的绘制,不讨论具体分析。
导入数据并对数据做相应处理:
from pyecharts import Funnel # 从pyecharts包中导出创建漏斗图的函数
import pandas as pd
import numpy as np
# 导入创建漏斗图所需要的数据
data = pd.read_excel('funnel.xls','Sheet1')
data
data的表结构如下图所示:
# 根据给定数据求出单一环节转化率:
temp1 = np.array(data['人数'][1:])
temp2 = np.array(data['人数'][0:-1])
single_convs = temp1 / temp2
single_convs = list(single_convs)
single_convs.insert(0,1)
single_convs = [round(x,4) for x in single_convs] # 利用round函数将转化率保留四位小数
data['单一环节转化率'] = single_convs
# 根据给定数据求出总体转化率:
temp3 = np.array(data['人数'])
temp4= np.ones(len(data['人数'])) * data['人数'][0]
total_convs = (temp3 / temp4).tolist()
total_convs = [round(x,4) for x in total_convs]
data['总体转化率'] = total_convs
data
加入单一环节转化率和总体转化率后,data的表结构如下所示:
绘制漏斗图:
示例一:
attrs = data['环节'].tolist()
attr_value = (np.array(data['总体转化率'])* 100).tolist()
funnel1 = Funnel("总体转化漏斗图一",width=800, height=400, title_pos='center')
funnel1.add(name="商品交易行环节", # 指定图例名称
attr=attrs, # 指定属性名称
value = attr_value, # 指定属性所对应的值
is_label_show=True, # 指定标签是否显示
label_formatter='{c}%', # 指定标签显示的格式
label_pos="inside", # 指定标签的位置
legend_orient='vertical', # 指定图例的方向
legend_pos='left', # 指定图例的位置
is_legend_show=True) # 指定图例是否显示
funnel1.render()
funnel1
绘制的图形如下所示:
示例二:
funnel2 = Funnel("总体转化漏斗图二",width=800, height=400, title_pos='center')
funnel2.add(name="商品交易环节", # 指定图例名称
attr=attrs, # 指定属性名称
value = attr_value, # 指定属性所对应的值
is_label_show=True, # 指定标签是否显示
label_formatter='{b}{c}%', # 指定标签显示的格式
label_pos="outside", # 指定标签的位置
is_legend_show=False) # 指定图例不显示图例
funnel2.render()
funnel2
绘制的图形如下所示: