Python pyecharts 绘制漏斗图:原理、模板与代码实现

陈默
陈默
发布时间:2026-10-15| 6人浏览过
原创

本文介绍使用 Python 库 pyecharts 绘制漏斗图的方法。首先阐述漏斗图在 Meta 分析中用于评估发表偏倚的原理,包括样本量与效应量的关系。随后提供尖顶型、锥子型、三角形及连接型四种模板的代码实现与可视化效果,帮助开发者快速掌握数据预处理与绘图技巧。

漏斗图

漏斗图由 Light 等人于 1984 年提出,通常以单个研究的效应量为横坐标,样本含量为纵坐标绘制散点图。效应量可包括相对危险度(RR)、比值比(OR)、死亡比或其对数值等。理论上,纳入 Meta 分析的各独立研究效应的点估计在平面坐标系中的集合应呈倒置的漏斗形,因此得名。

样本量较小的研究精度较低,其数据点分布在漏斗图的底部,并向周围分散。

样本量较大的研究精度较高,其数据点分布在漏斗图的顶部,并向中间集中。

漏斗图法的主要优点包括:

操作简单,仅需被纳入的独立研究的样本含量和效应量即可绘制。

漏斗图法的主要局限性包括:

对称性仅通过目测判断,缺乏严格标准,不同观察者可能得出不同结论。

漏斗图仅能对发表偏倚进行粗略的定性判断;当纳入的独立研究数量较少时,判断散点对称性的难度进一步增加。

该方法可使系统评价人员意识到潜在问题,但无法直接提供解决方案。

漏斗图系列模板

尖顶型漏斗图

数据需通过 Python 进行预处理,然后导入模板进行绘制。

from pyecharts import options as opts
from pyecharts.charts import Funnel
from pyecharts.faker import Faker
c = (
Funnel()
.add(
"类别",
[list(z) for z in zip(Faker.choose(), Faker.values())],
sort_="ascending",
label_opts=opts.LabelOpts(position="inside"),
)
.set_global_opts(title_opts=opts.TitleOpts(title="标题"))
.render("尖顶型漏斗.html")
)

锥子型漏斗

只需对数据进行适当排序即可;当然,日常科研统计分析中的数据往往更为复杂。

from pyecharts import options as opts
from pyecharts.charts import Funnel
from pyecharts.faker import Faker
c = (
Funnel()
.add("类别", [list(z) for z in zip(Faker.choose(), Faker.values())])
.set_global_opts(title_opts=opts.TitleOpts(title="标题"))
.render("锥子型漏斗.html")
)

三角形漏斗

import pyecharts.options as opts
from pyecharts.charts import Funnel
x_data = ["展现", "点击", "访问", "咨询", "订单"]
y_data = [100, 80, 60, 40, 20]
data = [[x_data[i], y_data[i]] for i in range(len(x_data))]
(
Funnel(init_opts=opts.InitOpts(width="1200px", height="600px"))
.add(
series_name="",
data_pair=data,
gap=2,
tooltip_opts=opts.TooltipOpts(trigger="item", formatter="{a} <br/>{b} : {c}%"),
label_opts=opts.LabelOpts(is_show=True, position="inside"),
itemstyle_opts=opts.ItemStyleOpts(border_color="#fff", border_width=1),
)
.set_global_opts(title_opts=opts.TitleOpts(title="漏斗图", subtitle="123"))
.render("三角形漏斗.html")
)

连接型漏斗

from pyecharts import options as opts
from pyecharts.charts import Funnel
from pyecharts.faker import Faker
c = (
Funnel()
.add(
"类别",
[list(z) for z in zip(Faker.choose(), Faker.values())],
label_opts=opts.LabelOpts(position="inside"),
)
.set_global_opts(title_opts=opts.TitleOpts(title="标题"))
.render("连接型漏斗.html")
)

到此这篇关于 Python 可视化神器 pyecharts 绘制漏斗图的文章就介绍到这了,更多相关 Python 绘制漏斗图内容请搜索本站以前的文章或继续浏览下面的相关文章,希望大家以后多多支持本站!

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。