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

2023-09-11 07:00:00

专栏导读

🔥🔥本文已收录于《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()

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

书籍推荐

在这里插入图片描述

清华社【秋日阅读企划】领券立享优惠

IT好书 5折叠加10元 无门槛优惠券:https://u.jd.com/Yqsd9wj

活动时间:9月4日-9月17日,先到先得,快快来抢

在这里插入图片描述
内容介绍:

《Vue.js从入门到精通》从初学者角度出发,通过通俗易懂的语言、丰富多彩的实例,详细介绍了使用Vue.js进行程序开发需要掌握的各方面技术。全书分为4篇,共19章,内容包括初识Vue.js、ECMAScript 6语法介绍、Vue实例与数据绑定、条件判断指令、v-for指令、计算属性和监听属性、元素样式绑定、事件处理、表单元素绑定、自定义指令、组件、组合API、过渡和动画效果、渲染函数、使用Vue Router实现路由、使用axios实现Ajax请求、Vue CLI、状态管理,以及51购商城项目实战。书中的大多数知识点都结合具体实例进行介绍,涉及的程序代码给出了详细的注释,使读者可轻松领会Vue.js程序开发的精髓,快速提高开发技能。

京东地址https://item.jd.com/14055952.html

更多推荐

网络编程【TCP单向通信、TCP双向通信、一对多应用、一对多聊天服务器】(二)-全面详解(学习总结---从入门到深化)

目录Java网络编程中的常用类TCP通信的实现和项目案例TCP通信入门案例TCP单向通信TCP双向通信创建点对点的聊天应用一对多应用一对多聊天服务器Java网络编程中的常用类Java为了跨平台,在网络应用通信时是不允许直接调用操作系统接口的,而是由java.net包来提供网络功能。下面我们来介绍几个java.net包中

【JAVA】多态的概念与实际利用

个人主页:【😊个人主页】系列专栏:【❤️初识JAVA】前言在面向对象(OOP)的程序设计语言中,多态与封装、继承合称为OOP的三大特性。在今天,我们就来学习一下JAVA中的多态是什么样子的。、多态指一个对象在不同情况下可以表现出不同的行为。Java多态性分为两种:编译时多态性(静态多态性)和运行时多态性(动态多态性)

【三维重建】3D Gaussian Splatting:实时的神经场渲染

文章目录摘要一、前言二、相关工作1.传统的场景重建与渲染2.神经渲染和辐射场3.基于点的渲染和辐射场4.*什么是Tile-basedrasterizer(快速光栅化)三、OVERVIEW四、可微的三维高斯Splatting五、三维高斯自适应密度控制的优化1.优化2.高斯的自适应控制六、高斯分布的快速可微光栅化器(拓展)

DevSecOps内置安全保护

前言随着DevOps的发展,DevOps大幅提升了企业应用迭代的速度。但同时,安全如果不能跟上步伐,不仅会抵消DevOps变革带来的提升,拖慢企业数字化转型进程,还会导致漏洞与风险不约而至。所以安全能力在全球范围内受到的重视越来越高,软件开发内生的安全性成为评价企业DevOps成熟度水平的重要指标。一直以来,业界长期重

自己实现 SpringMVC 底层机制 系列之-实现任务阶段 8- 完成返回 JSON 格式数据-@ResponseBody

😀前言自己实现SpringMVC底层机制系列之-实现任务阶段8-完成返回JSON格式数据-@ResponseBody🏠个人主页:尘觉主页🧑个人简介:大家好,我是尘觉,希望我的文章可以帮助到大家,您的满意是我的动力😉😉在csdn获奖荣誉:🏆csdn城市之星2名⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣

有机化学英文单词组成以及命名规则

当涉及到有机化合物的命名时,有各种不同的组成部分和功能团可以组合在一起。以下是一些常见的有机功能团和它们的英文名称:|中文|英文||--------------|--------------------||甲基|Methyl||乙基|Ethyl||酸|Acid||醇|Alcohol||醚|Ether||醛|Aldehy

ElasticSearch(三)

1.数据聚合聚合(aggregations)可以让我们极其方便的实现对数据的统计、分析、运算。例如:什么品牌的手机最受欢迎?这些手机的平均价格、最高价格、最低价格?这些手机每月的销售情况如何?实现这些统计功能的比数据库的sql要方便的多,而且查询速度非常快,可以实现近实时搜索效果。1.1.聚合的种类聚合常见的有三类:桶

大语言模型之十-Byte Pair Encoding

Tokenizer诸如GPT-3/4以及LlaMA/LlaMA2大语言模型都采用了token的作为模型的输入输出,其输入是文本,然后将文本转为token(正整数),然后从一串token(对应于文本)预测下一个token。进入OpenAI官网提供的tokenizer可以看到GPT-3tokenizer采用的方法。这里以H

面试中的数据可视化:如何用数据支持你的观点

🌷🍁博主猫头虎(🐅🐾)带您GotoNewWorld✨🍁🦄博客首页——🐅🐾猫头虎的博客🎐🐳《面试题大全专栏》🦕文章图文并茂🦖生动形象🐅简单易学!欢迎大家来踩踩~🌺🌊《IDEA开发秘籍专栏》🐾学会IDEA常用操作,工作效率翻倍~💐🌊《100天精通Golang(基础入门篇)》🐅学会Gol

中小型互联网公司如何搭建自己的技术架构

适用范围本文主要针对中小型互联网公司,特别适用于手机APP或者pc的后台架构,基本可以支撑5万日活本文会对可能用到的相关技术进行技术选型的说明,以及技术的架构介绍,技术架构的介绍课程后面有地址,可以点进去查看。技术指标说一下一些技术指标的计算过程可以作为其他同学的参考QPS,如果是5万日活,使用集中在每天的4小时,每个

记录一个爬虫过程,从基础爬虫到逆向,再到jsrpc,再到selenium,啥都包括了

这篇文章记录一下我跟一个网站的恩怨纠葛,为了爬这个网站,不断学习新知识,不断尝试,水平提高了不少。总算有点成就了,这里做一个记录,当然还是不完美,期待未来可能技术更精进,能有更好的方法吧。这个网站是:aHR0cDovL3NkLmNoaW5hdm9sdW50ZWVyLm1jYS5nb3YuY24vc3Vic2l0ZS9z

热文推荐