Python实现漏斗图的绘制

版权声明:本文为博主原创文章,转载请附上博文链接。 https://blog.csdn.net/qq_41080850/article/details/83933017

说明:代码运行环境为 Win10+Python3+jupyter notebook

本文主要用到的是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

    绘制的图形如下所示:

——更新于2019年1月30日晚。

 

参考:

http://pyecharts.org/#/zh-cn/charts_base

https://jingyan.baidu.com/album/25648fc17b83669191fd00b3.html?picindex=1

《网站分析实战》——王彦平、吴盛峰

展开阅读全文

没有更多推荐了,返回首页