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

文章目录

  • 专栏导读
  • 1. 箱形图介绍
    • 1)箱形图介绍
    • 2)怎么看箱型图?
    • 3)解释说明
  • 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. 箱形图介绍

1)箱形图介绍

箱形图(Box-plot)又称为盒须图、盒式图或箱线图,是一种用作显示一组数据分散情况资料的统计图。因形状如箱子而得名。在各种领域也经常被使用,常见于品质管理。它主要用于反映原始数据分布的特征,还可以进行多组数据分布特征的比 较。箱线图的绘制方法是:先找出一组数据的上边缘、下边缘、中位数和两个四分位数;然后, 连接两个四分位数画出箱体;再将上边缘和下边缘与箱体相连接,中位数在箱体中间。箱形图是由首位两个四分位数(Q1,Q3)以及中位数(Q2)组成的,它能够反映出一组数据的基本统计特性,如分布的范围、中位数、变异程度等。

在这里插入图片描述

特点:箱形图是概括性较强的一种图,它能够准确反映出数据的主要特点,包括最大值、最小值、四分位数、中位数和实例数,同时观测异常点。

应用场景:箱形图主要用于比较多组数据的分布情况,它非常适用于表示连续变量的分布和比较,是显著进行数据可视化的一种常用工具。

2)怎么看箱型图?

“盒式图"或叫"盒须图”"箱形图"boxplot(也称箱须图(Box-whiskerPlot)须图又称为箱形图,其绘制须使用常用的统计量,能提供有关数据位置和分散情况的关键信息,尤其在比较不同的母体数据时更可表现其差异。

主要包含六个数据节点,将一组数据从大到小排列,分别计算出他的上边缘,上四分位数Q3,中位数,下四分位数Q1,下边缘,还有一个异常值。标示了图中每条线表示的含义,其中应用到了分位值(数)的概念,如下图所示:

在这里插入图片描述

运行结果

3)解释说明

数学层面理解箱形图每个部分的含义(下四分位线,中位数,上四分位数,上限,下限,异常值,极端异常值):

  • 下四分位数:指数据的25%分位点所对应的值(Q1)
  • 中位数:指数据的50%分位点所对应的值(Q2)
  • 上四分位数:指数据的75%分位点所对应的值(Q3)
  • 上限:上限=Q3+1.5*(Q3-Q1)
  • 下限:下限=Q1-1.5*(Q3-Q1)
  • 异常值的判定标准:当变量的数据值大于上限或小于下限时,判定为异常值

计算方法:

  • 1、.数据集:-15, 7, 10, 15, 20, 33, 5
  • 2、按从小到大的顺序对数据集进行排列:-15, 5, 7, 10, 15, 20, 33
  • 3、确定四分位数索引位置的根据公式:1+(n-1)*数据的百分比分位点,在根据索引位置确定索引所对应的数据值(n是数据集的数量 n=6)
    • Q1_position=1+(6-1)*0.25=2.25 (Q1在第二个数和第三个数之间)
    • Q1_value=15+(36-15)*(2.25-2)=20.25
    • Q2_position=1+(6-1)*0.5=3.5 (Q2在第三个数和第四个数之间)
    • Q2_value=36+(39-36)*(3.5-3)=37.5
    • Q3_position=1+(6-1)*0.75=4.75 (Q3在第四个数和第五个数之间)
    • Q3_value=39+(40-39)*(4.75-4)=39.75
    • 上限=39.75+(39.75-20.25)*1.5=69
    • 下限=20.25-(39.75-20.25)*1.5=-9

极端异常值:

  • 极端上限:上限=Q3+3*(Q3-Q1)
  • 极端下限:下限=Q1-3*(Q3-Q1)
  • 极端异常值的判定标准:当变量的数据值大于极端上限或小于极端下限时,判定为极端异常值

2. 普通箱型图

首先,确保已经安装了Pyecharts库。可以使用以下命令进行安装:

!pip install pyecharts

接下来,我们可以按照以下步骤绘制普通箱形图:

  1. 导入所需的库和模块:
from pyecharts.charts import Boxplot
from pyecharts import options as opts
from pyecharts.globals import ThemeType
  1. 创建一个Boxplot对象,并设置主题:
boxplot = Boxplot(init_opts=opts.InitOpts(theme=ThemeType.LIGHT))
  1. 添加数据和配置项:
boxplot.add_xaxis(x_data)  # 设置x轴数据
boxplot.add_yaxis(series_name, y_data)  # 设置y轴数据和系列名称
boxplot.set_global_opts(title_opts=opts.TitleOpts(title="普通箱形图"))  # 设置标题
  1. 展示图表:
boxplot.render_notebook()

下面是一个完整的示例代码:

from pyecharts.charts import Boxplot
from pyecharts import options as opts
from pyecharts.globals import ThemeType# 数据
x_data = ["A", "B", "C", "D", "E"]
y_data = [[1, 2, 3, 4, 5, 6, 7, 8, 9],[2, 3, 4, 5, 6, 7, 8, 9, 10],[3, 4, 5, 6, 7, 8, 9, 10, 11],[4, 5, 6, 7, 8, 9, 10, 11, 12],[5, 6, 7, 8, 9, 10, 11, 12, 13]
]
series_name = "数据"# 创建Boxplot对象
boxplot = Boxplot(init_opts=opts.InitOpts(theme=ThemeType.LIGHT))# 添加数据和配置项
boxplot.add_xaxis(x_data)
boxplot.add_yaxis(series_name, boxplot.prepare_data(y_data))
boxplot.set_global_opts(title_opts=opts.TitleOpts(title="普通箱形图"))# 展示图表
boxplot.render_notebook()

运行以上代码,即可在Jupyter Notebook中绘制出普通箱形图。可以根据需要调整数据和配置项,以满足具体需求,运行结果:
在这里插入图片描述

3. 水平箱型图

绘制水平方向箱型图只需要在代码中加上以下两句调转绘制方向即可:

# 设置图表的朝向为水平方向
boxplot.set_global_opts(legend_opts=opts.LegendOpts(orient="vertical"))
boxplot.reversal_axis()

完整源码:

from pyecharts.charts import Boxplot
from pyecharts import options as opts
from pyecharts.globals import ThemeType# 数据
x_data = ["A", "B", "C", "D", "E"]
y_data = [[1, 2, 3, 4, 5, 6, 7, 8, 9],[2, 3, 4, 5, 6, 7, 8, 9, 10],[3, 4, 5, 6, 7, 8, 9, 10, 11],[4, 5, 6, 7, 8, 9, 10, 11, 12],[5, 6, 7, 8, 9, 10, 11, 12, 13]
]
series_name = "数据"# 创建Boxplot对象
boxplot = Boxplot(init_opts=opts.InitOpts(theme=ThemeType.LIGHT))# 添加数据和配置项
boxplot.add_xaxis(x_data)
boxplot.add_yaxis(series_name, boxplot.prepare_data(y_data))
boxplot.set_global_opts(title_opts=opts.TitleOpts(title="普通箱形图"))# 设置图表的朝向为水平方向
boxplot.set_global_opts(legend_opts=opts.LegendOpts(orient="vertical"))
boxplot.reversal_axis()# 展示图表
boxplot.render_notebook()

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

4. 群组箱型图

from pyecharts import options as opts
from pyecharts.charts import Boxplot
import random# 生成随机数据
y_data1 = [[random.randint(500, 1000) for _ in range(12)],[random.randint(500, 1000) for _ in range(12)],
]
y_data2 = [[random.randint(100, 500) for _ in range(12)],[random.randint(100, 500) for _ in range(12)],
]c = (Boxplot(init_opts=opts.InitOpts(width="800px", height="500px")) # 创建 Boxplot 对象.add_xaxis(["expr1", "expr2"]) # 设置 x 轴数据.add_yaxis("A组",Boxplot.prepare_data(y_data1)) # 添加第一个 y 轴数据.add_yaxis("B组", Boxplot.prepare_data(y_data2)) # 添加第二个 y 轴数据.set_global_opts(title_opts=opts.TitleOpts(title="群组箱型图")) # 设置全局参数
)# 在 Jupyter Notebook 中展示图表
c.render_notebook()

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

5. 带异常点的箱型图

1、导入相关库:在Jupyter Notebook中,需要导入Pyecharts和相关的其他库。可以使用以下代码导入所需的库:

from pyecharts import options as opts
from pyecharts.charts import Boxplot
from pyecharts.commons.utils import JsCode

2、创建箱型图对象:通过创建Boxplot对象来生成箱型图,并设置相关的属性。可以使用链式调用方法来设置属性。以下是一个示例:

boxplot = (Boxplot().add_xaxis(x_data).add_yaxis("boxplot", y_data).set_global_opts(title_opts=opts.TitleOpts(title="带异常点的箱型图"),xaxis_opts=opts.AxisOpts(name="x轴"),yaxis_opts=opts.AxisOpts(name="y轴"),)
)

其中,x_data是一个列表,包含了每个箱型图的x轴标签;y_data是一个二维列表,每个子列表包含了每个箱型图的数据。

3、设置异常点:可以通过add_yaxis方法的第二个参数设置异常点。以下是一个示例:

.add_yaxis("boxplot",y_data,tooltip_opts=opts.TooltipOpts(formatter=JsCode("function (params) {return params.name + ': ' + params.value[2];}")),markpoint_opts=opts.MarkPointOpts(data=[opts.MarkPointItem(type_="max", name="最大值"),opts.MarkPointItem(type_="min", name="最小值"),]),
)

在这个示例中,通过设置tooltip_opts属性来自定义提示框的显示内容,通过设置markpoint_opts属性来添加最大值和最小值的标记点。

4、渲染图表:最后,可以使用render_notebook方法将图表渲染并输出到Jupyter Notebook中,如下所示:

boxplot.render_notebook()

完整的示例代码如下:

from pyecharts import options as opts
from pyecharts.charts import Boxplot
from pyecharts.commons.utils import JsCode# 示例数据
x_data = ["A", "B", "C", "D", "E"]
y_data = [[1, 2, 3, 4, 5],[2, 4, 6, 8, 10],[3, 6, 9, 12, 15],[4, 8, 12, 16, 20],[5, 10, 15, 20, 25],
]# 创建箱型图对象
boxplot = (Boxplot().add_xaxis(x_data).add_yaxis("boxplot",y_data,tooltip_opts=opts.TooltipOpts(formatter=JsCode("function (params) {return params.name + ': ' + params.value[2];}")),markpoint_opts=opts.MarkPointOpts(data=[opts.MarkPointItem(type_="max", name="最大值"),opts.MarkPointItem(type_="min", name="最小值"),]),).set_global_opts(title_opts=opts.TitleOpts(title="带异常点的箱型图"),xaxis_opts=opts.AxisOpts(name="x轴"),yaxis_opts=opts.AxisOpts(name="y轴"),)
)# 渲染图表
boxplot.render_notebook()

运行以上代码,即可在Jupyter Notebook中输出带异常点的箱型图:
在这里插入图片描述

书籍推荐

《Python自动化办公应用大全 》

在这里插入图片描述

本书全面系统地介绍了Python语言在常见办公场景中的自动化解决方案。全书分为5篇21章,内容包括Python语言基础知识,Python读写数据常见方法,用Python自动操作Excel,用Python自动操作Word 与 PPT,用Python自动操作文件和文件夹、邮件、PDF 文件、图片、视频,用Python进行数据可视化分析及进行网页交互,借助ChatGPT轻松进阶Python办公自动化。
本书适合各层次的信息工作者,既可作为初学Python的入门指南,又可作为中、高级自动化办公用户的参考手册。书中大量的实例还适合读者直接在工作中借鉴。

抽奖送书老规矩(不点赞收藏中奖无效):注意记得关注博主不然中奖了还不知道!!!

  • 1. 点赞收藏文章
  • 2. 评论区留言:人生苦短,我用Python!!!(留言才能进入奖池,每人最多留言三条)
  • 3. 周六八点爬虫抽奖5人
  • 当当购买链接 :http://product.dangdang.com/29566495.html

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SAM(Segment Anything Model)让CV走到尽头?学CV的研究生还能正常毕业吗?怎么使用SAM?

SAM(Segment Anything Model)让CV走到尽头?学CV的研究生还能正常毕业吗?怎么使用SAM? 1. 引言 最近无论是在B站、知乎还是论坛、微博,都看了一些有关SAM的讨论。这个号称“CV界ChatGPT”的模型从出生起就…

GPT-4变笨实锤!3个月性能暴减1/10,代码生成大不如前,斯坦福最新研究引爆舆论

【导读】GPT-4性能下降终于有了依据。 GPT-4变笨实锤了? 斯坦福、UC伯克利最新研究称,和3月相比,GPT-4在6月的性能直接暴降。 甚至,代码生成、问题回答大不如前。 论文地址:https://arxiv.org/pdf/2307.09009.pdf …

留学文书why school怎么写你清楚吗?

每一个学校都期望你回答「为什么我要读你们这所学校」,有些学校将其成为一个问题,有些学校则内嵌在其他类型文书的小问题里。 然而,我们要记得,即使学校没有说要写,why school文书仍然是整个留学文书中不可或缺的一部分…

跨境电商平台开源BeikeShop系统-新增插件市场

前言:这次我们从v1.1.2升级到v1.2.0——BeikeShop终于迎来了一次大的变动! 最重要的!我们上线了beikeshop插件市场,用户可以根据需要付费购买、下载、上传、安装插件 根据用户们反馈的意见,这次重点对移动端兼容做了…

7个最佳WooCommerce跨境电商社交媒体插件

在互联的早期,您通常可以将产品直接放到网上并出售。但在今天你必须进行营销和做广告。如果没有包括社交媒体在内的可持续营销策略,您的商店可能会被忽视。值得高兴的是,有很多 WooCommerce跨境电商社交媒体插件可以用来传播信息,…

SpringBoot + Druid DataSource 实现监控 MySQL 性能

点击关注公众号,Java干货及时送达👇 来源:blog.csdn.net/lvoelife/article/details/128092586 1. 基本概念 我们都使用过连接池,比如C3P0,DBCP,hikari, Druid,虽然HikariCP的速度稍快…

使用eNSP配置防火墙USG6000v双机热备(VGMP+HRP+OSPF+NAT)

目录 前言 实验拓扑 配置过程 一、导入设备包 二、登陆USG6000v 三、配置接口IP地址 四、配置防火墙安全区域 五、配置内网路由器协议OSPF 五、配置VRRP 六、配置IP-Link联动双机热备 八、配置安全策略 九、配置NAT 十、配置外网路由 配置验证 前言 本实验使用华…

chatgpt赋能python:Python访问路由器

Python访问路由器 路由器是网络连接设备的重要组成部分,用于将信息从一个网络传输到另一个网络。为了使路由器正常运行,需要对其进行配置和管理。Python作为一种广泛应用的编程语言,可以通过多种方式访问和控制路由器。在本文中,…

【运维】使用AP模式接入已有的SP路由器

1. 前言 在使用Parsec时,遇到一个问题:就是Client客户端在接入到Internet时,“最好”只经过一个路由器(“Make sure your home isn’t using two routers”),Parsec官方给出的建议是通过AP模式接入SP的路由…

Python发送验证码短信

Python发送验证码短信 前提条件相关介绍实验环境发送验证码短信账户注册查看用户名查看密码主要步骤代码实现输出结果 前提条件 熟悉Python基本语法 相关介绍 Python是一种跨平台的计算机程序设计语言。是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。最初被…

教育培训机构学生管理系统

摘 要 计算机网络如果结合使用信息管理系统,能够提高管理员管理的效率,改善服务质量。优秀的教育培训机构学生管理系统能够更有效管理教育培训机构学生信息业务规范,帮助管理者更加有效管理教育培训机构学生信息,可以帮助提高克服…

班级管理系统

摘要:在国家重视教育影响下,教育部门的密确配合下,对教育进行改革、多样性、质量等等的要求,使教育系统的管理和运营比过去十年前更加理性化。依照这一现实为基础,设计一个快捷而又方便的网上班级管理系统是一项十分重…

【学生管理系统】班级管理

目录 3. 班级管理 3.1 需求 3.1.1 添加班级 3.1.2 班级列表 3.2 搭建环境 3.2.1 前端实现 3.2.2 后端实现(9010) 3.3 添加班级 3.3.1 查询所有老师 3.3.2 【难】前端:选择老师 3.3.3 后端:添加班级 3.3.4 前端&#x…

postman解决session验证问题,试用验证码校验,带登录状态的请求

在测试后端接口时,我们经常会遇到某个接口是需要权限才能访问,如登录后才能访问,那postman如何模拟已登录的状态呢?再者,如果我们在做注册模块时,后端验证码生成并通过邮箱或短信发送给用户后,必…

TDengine高可用分布式集群详解

本文正在参与“拥抱开源|涛思数据TDengine有奖征稿:投稿地址。 文章目录 一、前言二、举个栗子1、努力工作的小T2、可怜的小T3、小T的老婆小D登场4、小T创业了5、平衡分配任务6、公司越做越大 三、分布式和集群概览1、单点1)单点概念2)单点故…

鹅厂发布的这个算力集群,最快4天训练万亿参数大模型

​| 文章来源于:“鹅厂技术派”公众号 大模型要成功,算力是关键。 这是腾讯云面向大模型训练场景,发布的全新一代的HCC高性能计算集群性能参数: “算力性能和上一代相比提升3倍,服务器接入带宽从1.6T提升到3.2T。”…

GPU集群使用

文章目录 一、GPU集群使用1、使用ssh远程连接2、新建虚拟环境3、修改信息4、常用命令 一、GPU集群使用 在GPU集群中,会有不同级别的用户,huge(最高级用户)、large(高级用户)、normal(普通用户),用户的级别不同,权限也不同。 1、…

部署+使用集群的算力跑CPU密集型任务

我先在开头做一个总结,表达我最终要做的事情和最终环境是如何的,然后我会一步步说明我是如何搭建。 要做的事情 尝试如何使用多台机器的算力共同跑一个CPU密集型或者GPU密集型的任务。这里以CPU密集型为例子。 在多台机器搭建MPI环境,构建…

今年你们赚到钱了吗?

峥嵘的2022年,各位程序员们,你们赚到钱了吗? 今天是2022年12月21日,眼看就快过年了! 今年你们赚到钱了吗?对于我而言,又是一个"窘迫/囧迫"的穷年,有点心慌慌,有…

教你一招利用python在网上接单赚钱,月薪过万太香了

前言 学习python编程,不仅可以找到一份高薪工作,而且不打算转化或者是在校学生的话,也能为你的日常生活提高一些帮助,比如:自动化办公 爬取一些数据信息之类的…另外闲暇时间也可以在网上接点小单,增加些收…