100天精通Python(可视化篇)——第100天:Pyecharts绘制多种炫酷漏斗图参数说明+代码实战

news2025/1/16 11:02:52

文章目录

  • 专栏导读
  • 一、漏斗图介绍
    • 1. 说明
    • 2. 应用场景
  • 二、漏斗图类说明
    • 1. 导包
    • 2. add函数
  • 三、漏斗图实战
    • 1. 基础漏斗图
    • 2. 标签内漏斗图
    • 3. 百分比漏斗图
    • 4. 向上排序漏斗图
    • 5. 标准漏斗图

专栏导读

🔥🔥本文已收录于《100天精通Python从入门到就业》:本专栏专门针对零基础和需要进阶提升的同学所准备的一套完整教学,从0到100的不断进阶深入,后续还有实战项目,轻松应对面试,专栏订阅地址:https://blog.csdn.net/yuan2019035055/category_11466020.html

  • 优点订阅限时9.9付费专栏进入千人全栈VIP答疑群,作者优先解答机会(代码指导、远程服务),群里大佬众多可以抱团取暖(大厂内推机会)
  • 专栏福利简历指导、招聘内推、每周送实体书、80G全栈学习视频、300本IT电子书:Python、Java、前端、大数据、数据库、算法、爬虫、数据分析、机器学习、面试题库等等
    在这里插入图片描述
    在这里插入图片描述

一、漏斗图介绍

1. 说明

漏斗图(Funnel plot)是一种用于可视化数据偏倚或选择性报告的图表。它通常用于汇总研究结果或元分析中的小样本研究或临床试验。漏斗图可以帮助研究人员或读者判断研究结果是否存在偏倚或选择性报告的情况。

漏斗图的基本结构是一个倒置的漏斗形状,其中包含了每个研究或试验的效应估计值(通常是效应量)和其置信区间。效应估计值通常在横轴上,而研究或试验的数量在纵轴上。漏斗图的宽度代表了每个研究或试验的精确度或权重,通常是以标准误差或置信区间的宽度表示。

2. 应用场景

漏斗图的主要应用场景包括:

  • 研究结果的可视化:漏斗图可以将多个研究或试验的结果汇总在一起,直观地展示每个研究的效应估计值和置信区间。这有助于读者或决策者了解整体研究结果的分布情况。

  • 发现选择性报告:漏斗图可以帮助检测研究结果的选择性报告。如果存在选择性报告,即小样本研究或试验的结果倾向于报告正向结果,那么漏斗图将会显示一个不对称的形状,即底部较宽,顶部较窄。

  • 评估偏倚风险:漏斗图可以用于评估研究结果的偏倚风险。如果存在偏倚,即小样本研究或试验的结果倾向于偏离总体效应,那么漏斗图将会显示一个不对称的形状,即整个漏斗向左或向右倾斜。

  • 检测出离群值:漏斗图可以帮助检测研究结果中的离群值。离群值可能是由于研究方法、样本特征或其他因素引起的异常结果。通过观察漏斗图,我们可以发现那些与其他研究结果相比明显偏离的研究或试验。

综上所述,漏斗图是一种用于可视化数据偏倚或选择性报告的图表工具。它可以帮助研究人员或读者判断研究结果是否存在偏倚或选择性报告,并在汇总研究结果或元分析中起到重要的辅助作用。

二、漏斗图类说明

1. 导包

from pyecharts.charts import Funnel

2. add函数

向图表中添加一个数据系列,包括系列名称、数据序列、颜色、排序方式、间隔、标签配置、提示框配置和样式配置等参数

add(
    self,
    series_name: str,  # 系列名称,用于标识不同的数据系列
    data_pair: types.Sequence,  # 数据序列,包含一组数据对,每个数据对包括数据的名称和值
    *,
    color: types.Optional[str] = None,  # 数据系列的颜色,可选参数,默认为None
    sort_: str = "descending",  # 数据排序方式,默认为降序排序
    gap: types.Numeric = 0,  # 数据之间的间隔,默认为0
    label_opts: types.Label = opts.LabelOpts(),  # 数据标签的配置选项,默认为空
    tooltip_opts: types.Tooltip = None,  # 数据提示框的配置选项,默认为None
    itemstyle_opts: types.ItemStyle = None,  # 数据项的样式配置选项,默认为None
) 

三、漏斗图实战

1. 基础漏斗图

下面代码创建了一个基本的漏斗图,展示了商品的销售情况。Funnel()创建了一个漏斗图实例,.add()方法用于添加数据,[list(z) for z in zip(goods, sales)]将商品和销售数据进行组合。通过c.render()方法可以将图表保存为HTML文件,c.render_notebook()可以在Jupyter Notebook中直接显示漏斗图。

# 导入Funnel模块
from pyecharts.charts import Funnel

# 定义商品和销售数据
goods = ['钢笔', '本子', '桌子', '椅子', '橡皮擦', '铅笔']
sales = [10, 50, 20, 20, 20, 30]

# 创建漏斗图实例
c = (
    Funnel()
    .add("销售图", [list(z) for z in zip(goods, sales)])  # 添加数据
)

# 保存为HTML文件
c.render("basic_funnel.html")

# 在Jupyter Notebook中显示漏斗图
c.render_notebook()

运行结果:
在这里插入图片描述

2. 标签内漏斗图

通过设置label_opts参数的position属性,你可以控制标签的位置。

position参数可以设置为以下值之一:

  • “inside”:标签显示在漏斗图的内部,默认位置。
  • “outside”:标签显示在漏斗图的外部。

例如,使用position="inside"可以将标签显示在漏斗图的内部。

# 导入Funnel模块
from pyecharts.charts import Funnel
from pyecharts import options as opts

# 定义商品和销售数据
goods = ['钢笔', '本子', '桌子', '椅子', '橡皮擦', '铅笔']
sales = [10, 50, 20, 20, 20, 30]

# 创建漏斗图实例
c = (
    Funnel()
    .add("销售图",
         [list(z) for z in zip(goods, sales)],# 添加数据
         label_opts=opts.LabelOpts(position="inside") # 标签设置在漏斗图内
         )

)

# 保存为HTML文件
c.render("basic_funnel.html")

# 在Jupyter Notebook中显示漏斗图
c.render_notebook()

运行结果:
在这里插入图片描述

3. 百分比漏斗图

要在漏斗图中显示每个阶段的百分比,可以使用label_opts参数和formatter属性进行设置。以下是修改后的代码:

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

# 定义商品和销售数据
goods = ['钢笔', '本子', '桌子', '椅子', '橡皮擦', '铅笔']
sales = [10, 50, 20, 20, 20, 30]

# 创建漏斗图实例
c = (
    Funnel()
    .add(
        "销售图",
        [list(z) for z in zip(goods, sales)],
        label_opts=opts.LabelOpts(formatter="{b}: {d}%"),  # 设置标签格式为 "商品名称: 百分比"
    )
)

# 保存为HTML文件
c.render("百分比漏斗图.html")

# 在Jupyter Notebook中显示漏斗图
c.render_notebook()

label_opts参数中,通过formatter属性设置标签的显示格式为"{b}: {d}%",其中{b}表示商品名称,{d}表示百分比。这样每个阶段的标签就会显示为"商品名称: 百分比"的形式。修改后的代码会生成一个带有百分比的漏斗图,并保存为HTML文件或在Jupyter Notebook中显示。

运行结果:
在这里插入图片描述

4. 向上排序漏斗图

通过在add函数添加sort_="ascending"参数修改排序方式:

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

# 定义商品和销售数据
goods = ['钢笔', '本子', '桌子', '椅子', '橡皮擦', '铅笔']
sales = [10, 50, 20, 20, 20, 30]

# 创建漏斗图实例
c = (
    Funnel()
    .add(
        "销售图",
        [list(z) for z in zip(goods, sales)],
        sort_="ascending", # 排序方法
        label_opts=opts.LabelOpts(formatter="{b}: {d}%"),  # 设置标签格式为 "商品名称: 百分比"
    )
)

# 保存为HTML文件
c.render("百分比漏斗图.html")

# 在Jupyter Notebook中显示漏斗图
c.render_notebook()

在这里插入图片描述

5. 标准漏斗图

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

c = (
    Funnel()
    .add(
        series_name="漏斗图系列名称",
        data_pair=[("步骤1", 100), ("步骤2", 80), ("步骤3", 60), ("步骤4", 40), ("步骤5", 20)],
        # 数据序列,每个数据对包括步骤名称和对应的值
        gap=2,  # 数据之间的间隔
        sort_="descending",  # 数据排序方式,这里使用降序排序
        label_opts=opts.LabelOpts(position="inside"),  # 数据标签的配置选项,这里设置标签在内部显示
    )
    .set_global_opts(
        title_opts=opts.TitleOpts(title="标准漏斗图"),  # 设置图表标题
        tooltip_opts=opts.TooltipOpts(trigger="item", formatter="{a} <br/>{b} : {c}%"),  # 设置提示框的格式
    )
)

# 保存为HTML文件
c.render("标准漏斗图.html")

# 在Jupyter Notebook中显示漏斗图
c.render_notebook()

运行结果:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/998237.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

特殊矩阵的压缩存储(对称矩阵,三角矩阵和三对角矩阵)

目录 1.对阵矩阵 2.三角矩阵 3.三对角矩阵&#xff08;带状矩阵&#xff09; 均假设数组的下标从0开始 1.对阵矩阵 定义&#xff1a;若对一个n阶矩阵A中的任意一个元素 aᵢ,ⱼ 都有aᵢ,ⱼaⱼ,ᵢ &#xff08;1≤i,j≤n&#xff09;&#xff0c;则称其为对称矩阵。 存储策略…

Spring最佳实践: 构建高效可维护的Java应用程序

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f984; 博客首页——&#x1f405;&#x1f43e;猫头虎的博客&#x1f390; &#x1f433; 《面试题大全专栏》 &#x1f995; 文章图文…

第7章_瑞萨MCU零基础入门系列教程之UART

本教程基于韦东山百问网出的 DShanMCU-RA6M5开发板 进行编写&#xff0c;需要的同学可以在这里获取&#xff1a; https://item.taobao.com/item.htm?id728461040949 配套资料获取&#xff1a;https://renesas-docs.100ask.net 瑞萨MCU零基础入门系列教程汇总&#xff1a; ht…

编译国产openEuler 22.03 LTS系统OpenSSH 9.4的rpm安装包

目前OpenSSH版本已至9.4&#xff0c;其作为操作系统底层管理平台软件&#xff0c;需要保持更新以免遭受安全攻击&#xff0c;编译生成rpm包是生产环境中批量升级的最佳途径。本文在国产openEuler 22.03 LTS系统上完成OpenSSH 9.4的编译工作。 一、准备编译环境&#xff1a; 1…

【北大核心CSCD期刊】生物特征识别论文投稿经历

计算机工程与应用&#xff1a;半月刊、审稿快、比较简单。

iisfastchi漏洞复现

1.查看版本 2.在路径中写入 php脚本 发现使用不了 3.环境搭建 结局打开 把限制打开

PostgreSQL数据库事务系统——获取virtual transaction id

如果一个事务没有进行INSERT、UPDATE、DELETE操作&#xff0c;那么就步会分配事务ID&#xff0c;但事务仍然用一个虚拟事务ID代表自己。虚拟事务ID由两部分组成&#xff0c;第一部分是Backend ID&#xff0c;另一个是每个会话自己维护的本地事务ID计数器。通过两部分组合&#…

算法通关村第十九关——动态规划高频问题(白银)

算法通关村第十九关——动态规划高频问题&#xff08;白银&#xff09; 前言1 最少硬币数2 最长连续递增子序列3 最长递增子序列4 完全平方数5 跳跃游戏6 解码方法7 不同路径 II 前言 摘自&#xff1a;代码随想录 动态规划五部曲&#xff1a; 确定dp数组&#xff08;dp tabl…

Unicode:Codejock Suite Prov22.1.0 for ActiveX Crack

Codejock 荣获 2022 年 Visual Studio 杂志读者选择奖&#xff01;Visual Studio 杂志宣布了第 28 届年度读者选择奖的获奖者。今年是 Visual Studio 杂志的读者对其 Visual Studio 相关工具和服务进行投票的第 28 年&#xff0c;他们对 42 个类别的产品提供了意见&#xff0c;…

Windows开启linux子系统并迁移到非系统盘

windows用户如想使用linux有一个非常简单的方法&#xff0c;就是开启windows下的linux子系统&#xff0c;也叫做WSL(Windows Subsystem for Linux)&#xff0c;下面简述一下安装过程。 首先打开控制面板&#xff0c;程序功能下面的开启或关闭windows功能 然后再下面这个界面勾…

【C刷题】day1

一、选择题 1.正确的输出结果是 int x5,y7; void swap() { int z; zx; xy; yz; } int main() { int x3,y8; swap(); printf("%d,%d\n"&#xff0c;x, y); return 0; } 【答案】&#xff1a; 3&#xff0c;8 【解析】&#xff1a; 考点&#xff1a; &#xff…

Redis使用原生命令搭建集群

1.Redis版本及下载 找到安装的redis版本&#xff0c;redis3.0以上版本才支持集群 下载对应的版本 2.安装redis集群 解压上传编译 [hadoophost152 opensource]$ tar -xvf redis-3.2.11.tar.gz [hadoophost152 opensource]$ cd redis-3.2.11/ [hadoophost152 redis-3.2.11]$ ma…

数据结构 每日一练:将带头结点的单链表就地逆置(视频讲解两种方法)

目录 方法一 算法视频分析 方法二 算法视频分析 Q&#xff1a;什么是“就地”捏&#xff1f; A&#xff1a;就是指辅助空间复杂度为O(1)&#xff0c;通俗一点来说就是不需要再开辟一块空间来实现算法。 特别说明&#xff1a; 笔者第一次录制视频&#xff0c;言语有些不顺&…

支持事务的分布式NoSQL——FoundationDB

【引子】周末阅读时光&#xff0c;一篇好的论文&#xff08;https://cacm.acm.org/magazines/2023/6/273229-foundationdb-a-distributed-key-value-store/fulltext&#xff09;&#xff0c;开阔了眼界&#xff0c;支持事务语义的NoSQL应该放到软件系统架构备选方案之中。 Foun…

Kotlin 协程 - 生命周期 Job

一、概念 对于每一个由协程构建器开启的协程&#xff0c;都会返回一个 Job 实例用来管理协程的生命周期。launch()直接返回 Job实现&#xff0c;async() 返回的 Deferred 实现了 Job接口。 Job public fun start(): Boolean public fun cancel(cause: CancellationException? …

java中HashMap如何根据value的值去获取key是多少

在Java中&#xff0c;HashMap是一种基于键值对存储数据的数据结构。HashMap并没有直接提供根据value获取key的方法。但你可以通过遍历HashMap的entrySet&#xff0c;找到对应的value&#xff0c;然后获取其对应的key。 以下是一个示例代码&#xff1a; public <K, V> K…

计算机图形学环境配置java3D

计算机图形学环境配置java3D JDK18&#xff08;或者一些版本都无法支持Applet类&#xff09;idea配置导入java3D的jar包测试代码&#xff1a;运行效果&#xff1a; java3Dwindows64位下载 这个是默认到下图路径中&#xff1a;&#xff08;记住这个路径&#xff0c;待会要导入ja…

2023Web前端开发面试手册

​​​​​​​​ HTML基础 1. HTML 文件中的 DOCTYPE 是什么作用&#xff1f; HTML超文本标记语言: 是一个标记语言, 就有对应的语法标准 DOCTYPE 即 Document Type&#xff0c;网页文件的文档类型标准。 主要作用是告诉浏览器的解析器要使用哪种 HTML规范 或 XHTML规范…

【C++笔记】C++STL vector类模拟实现

【C笔记】CSTL vector类模拟实现 一、实现模型和基本接口1.1、各种构造和析构1.2、迭代器 二、各种插入和删除接口2.1、插入接口2.1、删除接口2.3、resize接口 三、运算符重载3.1、方括号运算符重载3.2、赋值运算符重载 一、实现模型和基本接口 实现模型我们选择模拟库中的模型…

企业架构LNMP学习笔记35

学习目标和内容&#xff1a; 1、能够通过HAproxy实现负载均衡。 2、安装&#xff1a; yum install -y haproxy 3、配置文件修改点&#xff1a; 修改为80&#xff0c;并将后面几个用不到的&#xff0c;都进行删除。 代理转发到后端的app端。 4、后端app端的定义&#xff1b; …