如何用Python数据可视化来分析用户留存率

关于“漏斗图”

漏斗图常用于用户行为的转化率分析,例如通过漏斗图来分析用户购买流程中各个环节的转化率。当然在整个分析过程当中,我们会把流程优化前后的漏斗图放在一起,进行比较分析,得出相关的结论,今天小编就用“matplotlib”、“plotly”以及“pyecharts”这几个模块来为大家演示一下怎么画出好看的漏斗图首先我们先要导入需要用到的模块以及数据,

import matplotlib.pyplot as plt
import pandas as pd
df = pd.DataFrame({"环节": ["环节一", "环节二", "环节三", "环节四", "环节五"],
                   "人数": [1000, 600, 400, 250, 100],
                   "总体转化率": [1.00, 0.60, 0.40, 0.25, 0.1]})

需要用到的数据如下图所示:

matplotlib来制作漏斗图,制作出来的效果可能会稍显简单与粗糙,制作的原理也比较简单,先绘制出水平方向的直方图,然后利用plot.barh()当中的“left”参数将直方图向左移,便能出来类似于漏斗图的模样

y = [5,4,3,2,1]
x = [85,75,58,43,23]
x_max = 100
x_min = 0
for idx, val in enumerate(x):
    plt.barh(y[idx], x[idx], left = idx+5)
plt.xlim(x_min, x_max)

要绘制出我们想要的想要的漏斗图的模样,代码示例如下

from matplotlib import font_manager as fm
# funnel chart
y = [5,4,3,2,1]
labels = df["环节"].tolist()
x = df["人数"].tolist()
x_range = 100
font = fm.FontProperties(fname="KAITI.ttf")
fig, ax = plt.subplots(1, figsize=(12,6))
for idx, val in enumerate(x):
    left = (x_range - val)/2
    plt.barh(y[idx], x[idx], left = left, color='#808B96', height=.8, edgecolor='black')
    # label
    plt.text(50, y[idx]+0.1, labels[idx], ha='center',
             fontproperties=font, fontsize=16, color='#2A2A2A')
    # value
    plt.text(50, y[idx]-0.3, x[idx], ha='center',
             fontproperties=font, fontsize=16, color='#2A2A2A') 

    if idx != len(x)-1:
        next_left = (x_range - x[idx+1])/2
        shadow_x = [left, next_left,
                    100-next_left, 100-left, left]
        shadow_y = [y[idx]-0.4, y[idx+1]+0.4,
                    y[idx+1]+0.4, y[idx]-0.4, y[idx]-0.4]
        plt.plot(shadow_x, shadow_y)
plt.xlim(x_min, x_max)
plt.axis('off')
plt.title('每个环节的流失率', fontproperties=font, loc='center', fontsize=24, color='#2A2A2A')
plt.show()

绘制出来的漏斗图如下图所示

当然我们用plotly来绘制的话则会更加的简单一些,代码示例如下

import plotly.express as px
data = dict(values=[80,73,58,42,23],
            labels=['环节一', '环节二', '环节三', '环节四', '环节五'])
fig = px.funnel(data, y='labels', x='values')
fig.show()

最后我们用pyecharts模块来绘制一下,当中有专门用来绘制“漏斗图”的方法,我们只需要调用即可

from pyecharts.charts import Funnel
from pyecharts import options as opts
from pyecharts.globals import ThemeType 

c = (
    Funnel(init_opts=opts.InitOpts(width="900px", height="600px",theme = ThemeType.INFOGRAPHIC ))
    .add(
        "环节",
        df[["环节","总体转化率"]].values,
        sort_="descending",
        label_opts=opts.LabelOpts(position="inside"),
    )
    .set_global_opts(title_opts=opts.TitleOpts(title="Pyecharts漏斗图", pos_bottom = "90%", pos_left = "center"))
)
c.render_notebook()

我们将数据标注上去之后

c = (
    Funnel(init_opts=opts.InitOpts(width="900px", height="600px",theme = ThemeType.INFOGRAPHIC ))
    .add(
        "商品",
        df[["环节","总体转化率"]].values,
        sort_="descending",
        label_opts=opts.LabelOpts(position="inside"),
    )
    .set_global_opts(title_opts=opts.TitleOpts(title="Pyecharts漏斗图", pos_bottom = "90%", pos_left = "center"))
    .set_series_opts(label_opts=opts.LabelOpts(formatter="{b}:{c}"))
)
c.render_notebook()

到此这篇关于如何用Python数据可视化来分析用户留存率的文章就介绍到这了,更多相关用Python数据可视化来分析用户留存率内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • python爬虫之Appium爬取手机App数据及模拟用户手势

    目录 Appium 模拟操作 屏幕滑动 屏幕点击 屏幕拖动 屏幕拖拽 文本输入 动作链 实战:爬取微博首页信息 Appium 在前文的讲解中,我们学会了如何安装Appium,以及一些基础获取App元素内容的方式.但认真看过前文的读者,肯定在博主获取元素的时候观察到了一个现象. 那就是手机App的内容并不是一次性加载出来的,比如大多数Android手机列表ListView,都是异步加载,也就是你滑动到那个位置,它才会显示出它的内容. 也就是说,我们前面爬取微博首页全部信息的时候,如果你不滑动先加载

  • Python编写检测数据库SA用户的方法

    本文讲述一个用Python写的小程序,用于有注入点的链接,以检测当前数据库用户是否为sa,详细代码如下: # Code by zhaoxiaobu Email: little.bu@hotmail.com #-*- coding: UTF-8 -*- from sys import exit from urllib import urlopen from string import join,strip from re import search def is_sqlable(): sql1="

  • Python中Cookies导出某站用户数据的方法

    应朋友需要,想将某客户的数据从某站里导出,先去某站搞个账号,建几条数据观察一番,心里有底后开搞. 1.Python环境搭建 之前电脑有安装过PyCharm Community 2019.1,具体安装过程就不写了,先跑个HelloWorld,输出正常后正式开整. 2.利用抓包工具或者Google浏览器调试模式拿到请求参数 Cookies参数如下: cookies = { 'JSESSIONID': 'XXX', 'phone': 'XXX', 'password': 'XXX', 'isAuto'

  • Python爬取用户观影数据并分析用户与电影之间的隐藏信息!

    一.前言 二.爬取观影数据 https://movie.douban.com/ 在『豆瓣』平台爬取用户观影数据. 爬取用户列表 网页分析 为了获取用户,我选择了其中一部电影的影评,这样可以根据评论的用户去获取其用户名称(后面爬取用户观影记录只需要『用户名称』). https://movie.douban.com/subject/24733428/reviews?start=0 url中start参数是页数(page*20,每一页20条数据),因此start=0.20.40...,也就是20的倍数

  • 如何用Python数据可视化来分析用户留存率

    关于"漏斗图" 漏斗图常用于用户行为的转化率分析,例如通过漏斗图来分析用户购买流程中各个环节的转化率.当然在整个分析过程当中,我们会把流程优化前后的漏斗图放在一起,进行比较分析,得出相关的结论,今天小编就用"matplotlib"."plotly"以及"pyecharts"这几个模块来为大家演示一下怎么画出好看的漏斗图首先我们先要导入需要用到的模块以及数据, import matplotlib.pyplot as plt im

  • Python数据可视化之分析热门话题“丁克家庭都怎么样了”

    一.前言 随着三胎政策的开放,人们对于生娃的讨论也逐渐热烈了起来,经常能够在各大社交媒体当中看到相关的话题,而随着时间慢慢地流逝,中国的首批"丁克家庭"已步入晚年,而相关的话题"那些当初选择不生孩子,现在四五十岁的人怎么样了?"也逐渐受到了人们的关注,尤其是现在年轻人生育的欲望已经不再那么的高了的情况下, 二.数据分析与可视化 首先我们对于网友的评论进行数据的采集,还是老规矩通过Python当中的Requests模块来发起请求,对返回的内容做整理之后取出我们想要的评

  • python数据可视化自制职位分析生成岗位分析数据报表

    目录 前言 1. 核心功能设计 可视化展示岗位表格数据 分析岗位薪资情况 分析岗位公司情况 数据分析导出 2. GUI设计与实现 3. 功能实现 3.1 职位数据爬虫 3.2 数据预处理 3.3 岗位数据展示 3.4 薪资图表可视化 3.5 岗位公司情况统计 3.6 预览保存 前言 为什么要进行职位分析?职位分析是人力资源开发和管理的基础与核心,是企业人力资源规划.招聘.培训.薪酬制定.绩效评估.考核激励等各项人力资源管理工作的依据.其次我们可以根据不同岗位的职位分析,可视化展示各岗位的数据分析

  • Python数据可视化正态分布简单分析及实现代码

    Python说来简单也简单,但是也不简单,尤其是再跟高数结合起来的时候... 正态分布(Normaldistribution),也称"常态分布",又名高斯分布(Gaussiandistribution),最早由A.棣莫弗在求二项分布的渐近公式中得到.C.F.高斯在研究测量误差时从另一个角度导出了它.P.S.拉普拉斯和高斯研究了它的性质.是一个在数学.物理及工程等领域都非常重要的概率分布,在统计学的许多方面有着重大的影响力. 正态曲线呈钟型,两头低,中间高,左右对称因其曲线呈钟形,因此人

  • python数据可视化使用pyfinance分析证券收益示例详解

    目录 pyfinance简介 pyfinance包含六个模块 returns模块应用实例 收益率计算 CAPM模型相关指标 风险指标 基准比较指标 风险调整收益指标 综合业绩评价指标分析实例 结语 pyfinance简介 在查找如何使用Python实现滚动回归时,发现一个很有用的量化金融包--pyfinance.顾名思义,pyfinance是为投资管理和证券收益分析而构建的Python分析包,主要是对面向定量金融的现有包进行补充,如pyfolio和pandas等. pyfinance包含六个模块

  • Python实现数据可视化案例分析

    目录 1. 问题描述 2. 实验环境 3. 实验步骤及结果 1. 问题描述 对右图进行修改: 请更换图形的风格 请将 x 轴的数据改为-10 到 10 请自行构造一个 y 值的函数 将直方图上的数字,位置改到柱形图的内部垂直居中的位置 对成绩数据 data1402.csv 进行分段统计:每 5 分作为一个分数段,展示出每个分数段的人数直方图. 自行创建出 10 个学生的 3 个学期排名数据,并通过直方图进行对比展示. 线图 把这个图像做一些调整,要求出现 5 个完整的波峰. 调大 cos 波形的

  • python数据可视化 – 利用Bokeh和Bottle.py在网页上展示你的数据

    目录 1. 文章重点和项目介绍 2. 数据集研究和图表准备 2.1 导入数据集 2.2 绘制图表 图表1:2019年上海,北京,深圳三地的每天AQI变化曲线 图表2:2019年上海,北京,深圳三地的每月平均AQI对比 图表3:2017年到2019年北京每月平均AQI对比 3. Bottle网页应用 3.1 文件夹结构 3.2 路由 3.3 模板实现 3.4 启动网页服务 4. 将Bokeh和Bottle集成在一起 4.1 模板修改 4.2 Python代码集成 5. 部署应用到Heroku 6.

  • python数据可视化Seaborn绘制山脊图

    目录 1. 引言 2. 举个栗子 3.山脊图 4.扩展 5.结论 1. 引言 山脊图一般由垂直堆叠的折线图组成,这些折线图中的折线区域间彼此重叠,此外它们还共享相同的x轴. 山脊图经常以一种相对不常见且非常适合吸引大家注意力的紧凑图的形式表现.观察上图,我们给其起名叫Ridge plot是非常恰当的,因为上述图表看起来确实很像山的脊背.此外,上述图像还有另一个称呼叫做Joy Plots–这主要是因为Joy Division乐队在如下专辑封面上采用了这种可视化形式. 2. 举个栗子 在介绍完山脊图

  • Python数据可视化详解

    目录 一.Matplotlib模块 1.绘制基本图表 1. 绘制柱形图 2. 绘制条形图 3. 绘制折线图 4. 绘制面积图 5. 绘制散点图 6. 绘制饼图和圆环图 2.图表的绘制和美化技巧 1. 在一张画布中绘制多个图表 2. 添加图表元素 3. 添加并设置网格线 4. 调整坐标轴的刻度范围 3.绘制高级图表 1. 绘制气泡图 2. 绘制组合图 3. 绘制直方图 4. 绘制雷达图 5. 绘制树状图 6. 绘制箱形图 7. 绘制玫瑰图 二.pyecharts模块 1.图表配置项 2.绘制漏斗图

  • Python数据可视化:顶级绘图库plotly详解

    有史以来最牛逼的绘图工具,没有之一 plotly是现代平台的敏捷商业智能和数据科学库,它作为一款开源的绘图库,可以应用于Python.R.MATLAB.Excel.JavaScript和jupyter等多种语言,主要使用的js进行图形绘制,实现过程中主要就是调用plotly的函数接口,底层实现完全被隐藏,便于初学者的掌握. 下面主要从Python的角度来分析plotly的绘图原理及方法: ###安装plotly: 使用pip来安装plotly库,如果机器上没有pip,需要先进行pip的安装,这里

随机推荐