漏斗图,形如“漏斗”,用于展示数据的逐渐减少或过滤过程。
它的起始总是最大,并在各个环节依次减少,每个环节用一个梯形来表示,整体形如漏斗。
一般来说,所有梯形的高度应是一致的,这会有助人们辨别数值间的差异。

需要注意的是,漏斗图的各个环节,有逻辑上的顺序关系。
同时,漏斗图的所有环节的流量都应该使用同一个度量。

通过漏斗图,可以较直观的看出流程中各部分的占比、发现流程中的问题,进而做出决策。

1. 主要元素

漏斗图的主要元素包括:

  1. 分类:漏斗图中的不同层级或步骤。每个分类代表一个特定的过程、筛选或转化。
  2. 倒梯形:表示在每个阶段中的数据数量或数量的百分比。通常,随着阶段的推进,数据量会逐渐减少。
  3. 数据流:表示数据在不同阶段之间的流动路径。它显示了数据从一个阶段到另一个阶段的转移和过滤过程。
  4. 转化率:表示在每个阶段中数据的转化率或转化的百分比。它反映了数据在不同阶段之间的损失或过滤程度。

2. 适用的场景

漏斗图适用的分析场景包括:

  • 销售转化分析:跟踪销售过程中的潜在客户数量,并展示他们在不同阶段的转化率,从而帮助分析销售流程中的瓶颈和改进机会。
  • 市场营销分析:展示市场活动中的潜在客户数量,并显示他们在不同营销阶段的转化率,从而评估市场策略的有效性和改进方向。
  • 用户体验分析:追踪用户在产品或服务使用过程中的转化率,帮助分析用户体验中的瓶颈和提升点,从而优化产品或服务设计。
  • 网站流量分析:展示网站访问者在不同页面或功能模块之间的转化率,帮助分析用户行为和改进网站设计。

3. 不适用的场景

然而,漏斗图并不适用于所有分析场景。以下是一些不适合使用漏斗图的情况:

  • 数据无序或重复:如果数据没有明确的阶段或无法按照特定的流程进行过滤或转化,漏斗图可能不适用。
  • 数据缺失或不完整:如果数据在不同阶段之间存在缺失或不完整,漏斗图可能无法准确反映数据流动和转化情况。
  • 多个并行路径:如果数据在不同阶段之间存在多个并行路径,并且无法简单地表示为单一的线性流程,漏斗图可能无法有效展示数据流动。

4. 分析实战

本次用漏斗图分析各个学历的毕业生人数,从小学学历到博士学历。

4.1. 数据来源

数据来源国家统计局公开的数据,整理好的数据可从下面的地址下载:
https://databook.top/nation/A0M

使用其中的文件:A0M0203.csv(各级各类学历教育毕业生数)

fp = "d:/share/data/A0M0203.csv"

df = pd.read_csv(fp)
df

4.2. 数据清理

漏斗图不需要时间序列数据,所以,只提取2021年的数据中从小学到博士的6种学历的毕业生人数。

data = df[df["sj"] == 2021]

#A0M020312: 普通小学毕业生数(万人)
#A0M02030T: 初中阶段教育毕业生数(万人)
#A0M02030J: 普通高中毕业生数(万人)
#A0M020306: 普通本科毕业生数(万人)
#A0M020304: 硕士毕业生数(万人)
#A0M020303: 博士毕业生数(万人)
data = data[
data["zb"].isin(
[
"A0M020312",
"A0M02030T",
"A0M02030J",
"A0M020306",
"A0M020304",
"A0M020303",
]
)
] data = data.sort_values("value", ascending=False)
data

4.3. 分析结果可视化

with plt.style.context("dark_background"):
fig = plt.figure()
ax = fig.add_axes([0.1, 0.1, 1, 1]) colors = plt.cm.Set2.colors
cnt = len(data) y = [[1 + i * 3, 3.8 + i * 3] for i in range(cnt)]
y_ticks = [2 + i * 3 for i in range(cnt)] start_x1 = 5
start_x2 = -5
for i in range(cnt):
ax.fill_betweenx(
y=y[i],
x1=[start_x1, data.iloc[i, 4]],
x2=[start_x2, -1 * data.iloc[i, 4]],
color=colors[i],
)
start_x1 = data.iloc[i, 4]
start_x2 = -1 * data.iloc[i, 4] ax.set_xticks([], [])
ax.set_yticks(y_ticks, data["zbCN"]) for y, value in zip(y_ticks, data["value"]):
ax.text(
10,
y,
value,
fontsize=16,
fontweight="bold",
color="white",
ha="center",
) ax.grid(False)
ax.set_title("2021年各学历毕业人数")

从图中可以看出,完成9年义务教育的比例很高。
初中到高中,人数几乎减半,而本科考研,硕士考博的人数比例更是锐减

【matplotlib 实战】--漏斗图的更多相关文章

  1. python中matplotlib画折线图实例(坐标轴数字、字符串混搭及标题中文显示)

    最近在用python中的matplotlib画折线图,遇到了坐标轴 "数字+刻度" 混合显示.标题中文显示.批量处理等诸多问题.通过学习解决了,来记录下.如有错误或不足之处,望请指 ...

  2. 【Highcharts】 绘制饼图和漏斗图

    1.outModel类设计 设计outModel类首先研究下Highcharts中series的data数据格式,发现饼图和漏斗图都可以使用这样格式的数据 series: [{ name: 'Uniq ...

  3. arcpy.mapping实战-专题图制图自动化

    arcpy.mapping实战-专题图制图自动化 by 李远祥 最初对arcpy.mapping感兴趣是因为一次大规模的专题地图调整的需要,由于某某单位利用ArcEngine编写的专题图出图系统,出现 ...

  4. Matplotlib学习---用matplotlib画雷达图(radar chart)

    雷达图常用于对多项指标的全面分析.例如:HR想要比较两个应聘者的综合素质,用雷达图分别画出来,就可以进行直观的比较. 用Matplotlib画雷达图需要使用极坐标体系,可点击此链接,查看对极坐标体系的 ...

  5. python使用matplotlib绘制折线图教程

    Matplotlib是一个Python工具箱,用于科学计算的数据可视化.借助它,Python可以绘制如Matlab和Octave多种多样的数据图形.下面这篇文章主要介绍了python使用matplot ...

  6. [实战] SSH 图形化转发

    [实战] SSH 图形化转发 一.介绍 Unix Like操作系统不是只能进行服务器的架设而已,在美编.排版.制图.多媒体应用上也是有其需要的.这些需求都需要用到图形介面(Graphical User ...

  7. ECharts学习总结(二)-----图表组件漏斗图(funnel)

    今天在学习ECharts时,想要在ECharts图表的原生态Demo中抠出漏斗图,却不知如何下手,经过一番研究,特总结如下: 首先我们需要这样做 1.拷贝出两个js文件:esl.js 和echarts ...

  8. python matplotlib imshow热图坐标替换/映射

    今天遇到了这样一个问题,使用matplotlib绘制热图数组中横纵坐标自然是图片的像素排列顺序, 但是这样带来的问题就是画出来的x,y轴中坐标点的数据任然是x,y在数组中的下标, 实际中我们可能期望坐 ...

  9. 小白学Python(9)——pyecharts 绘制漏斗图 Funnel

    根据pyecharts的介绍一直没有研究明白def和return的用法,无法显示完整的漏斗图,还请各位指点. 根据上文绘制bar的方法,我更改了代码,做出了漏斗图,不过和demo不一样,而且数据也会随 ...

  10. Python pyecharts绘制漏斗图

    一.pyecharts绘制漏斗图方法简介 funnel.add()方法简介add(name, attr, value, funnel_sort="ascending", funne ...

随机推荐

  1. 【java-Err】 Generating equals/hashCode implementation but without a call to superclass,

    @EqualsAndHashCode  默认不继承父类 修复此问题的方法很简单:  1. 使用@Getter @Setter @ToString代替@Data并且自定义equals(Object ot ...

  2. 前端Vue自定义带历史记录的搜索框组件searchBar 支持搜索输入框清空 搜索历史存储记录清除

    前端Vue自定义带历史记录的搜索框组件searchBar 支持搜索输入框清空 搜索历史存储记录清除,下载完整代码请访问uni-app插件市场地址:https://ext.dcloud.net.cn/p ...

  3. 「学习笔记」KMP 算法

    前置知识 前缀 是指从串首开始到某个位置 \(i\) 结束的一个特殊子串. 真前缀 指除了 \(S\) 本身的 \(S\) 的前缀. 举例来说, 字符串 abcabeda 的所有前缀为 {a, ab, ...

  4. 普通用户启动 supervisor 报 HTTP 错误(strace)

    公司的开发对生产环境都有普通用户 www 的权限,采用堡垒机登录到生产环境的机器. 默认 supervisor 使用 root 用户启动,开发没有权限直接修改配置和操作 supervisor 管理的进 ...

  5. Swithch反汇编(四种)

    ------------恢复内容开始------------ Switch语法格式 Switch(表达式) { case 常量表达式1: 语句; break; case 常量表达式2: 语句; bre ...

  6. mysql:EXPLAIN

    推荐阅读原文:EXPLAIN用法和结果分析 语法:EXPLAIN SELECT * FROM t1 使用EXPLAIN关键字可以模拟优化器执行SQL查询语句,从而知道MySQL是如何处理你的SQL语句 ...

  7. Linux 文件系统的设计

    一 硬盘的最小存储单元是扇区,扇区大小为512B 文件系统将硬盘划分为固定大小的块(block),最常见的块大小为4KB 块是文件系统读写硬盘的最小单位 二 文件系统设计面临的基本问题: 用户怎么找到 ...

  8. React: 路由重定向

    解决方案 参考链接 https://v5.reactrouter.com/web/example/route-config

  9. The language server needs at least PHP 7.1 installed. Version found: 7.0.10

    解决方案: 打开VS Code 文件 -> 首选项 -> 设置 -> 在 settings.json 中编辑 在 settings.json 中,加入: "php.exec ...

  10. 【Bash】rm -r 与 rmdir 区别

    目录 背景 二者区别 rmdir rm -r rm -rf 测试过程 配置环境 rmdir rm -r rm -rf 参考资料 背景 今天学弟在使用 NVMe-over-TCP 时发现无法卸载 nvm ...