Python画箱线图展示数据分布情况

箱线图(Boxplot)是一种常用的统计图表,用于展示数据的分布情况。

它由五个统计量组成:最小值、第一四分位数(Q1)、中位数(Q2)、第三四分位数(Q3)和最大值。

通过这些统计量,可以直观地了解数据的集中趋势、离散程度以及是否存在异常值。

构成要素

  1. 中位数(Q2)

    • 箱线图中的中间线代表数据的中位数,即将数据按大小排列后中间位置的数值。
  2. 四分位数(Q1和Q3)

    • 箱体的上边界(Q3)和下边界(Q1)分别表示数据的第三四分位数和第一四分位数。箱子的高度即为四分位距(IQR),是Q3和Q1的差值,用来衡量数据的离散程度。
  3. 盒须

    • 箱体外部的直线(盒须)延伸至数据集的最大值和最小值,用来显示非异常值的范围。盒须外部的点表示可能的异常值,即相对于主体数据分布偏离较大的数据点。
  4. 异常值

    • 在盒须外部的点表示可能存在的异常值,即与其他数据点相比显著偏离的数据。

使用场景

箱线图常用于以下情况:

  • 数据分布比较:可以同时比较多组数据的分布情况,帮助观察各组数据的中位数、四分位数和离散程度。
  • 异常值检测:通过观察箱体外部的点,可以快速发现可能的异常值或离群点。
  • 数据分散度分析:箱体的长度和位置反映了数据的分散程度,有助于对数据的离散程度进行比较。
        # 创建示例数据data = {'Group': ['A'] * 11 + ['B'] * 10 + ['C'] * 10,'Value': [23, 25, 19, 21, 24, 27, 22, 20, 21, 24, -1, # Group A30, 28, 36, 31, 34, 29, 35, 33, 32, 30,  # Group B15, 17, 14, 16, 13, 18, 14, 15, 17, 16]  # Group C}# 转换为 DataFramedf = pd.DataFrame(data)# 设置绘图风格sns.set(style="whitegrid")# 绘制箱线图plt.figure(figsize=(10, 6))sns.boxplot(x='Group', y='Value', data=df)# 添加标题和标签plt.title('Box Plot of Three Groups')plt.xlabel('Group')plt.ylabel('Value')# 显示图表# plt.show()plt.savefig('./boxPlot_seaborn.png')

  • 中位数(箱体内部的横线):每个组的数据中间值。
  • 四分位数(箱体的上下边缘):分别表示25%和75%的数据点。
  • 最小值和最大值(盒须的末端):除去异常值后数据的范围。
  • 异常值(箱体外的点):与其他数据点相距较远的数值。

自定义箱线图

        print('自定义箱线图')# 示例数据data = [{'Min': 10, '50%': 50, 'Mean': 55, '95%': 90, '99%': 97, 'Max': 100},{'Min': 20, '50%': 60, 'Mean': 65, '95%': 85, '99%': 92, 'Max': 95},{'Min': 5, '50%': 40, 'Mean': 45, '95%': 80, '99%': 88, 'Max': 90}]# 准备箱线图数据box_data = []means = []positions = []for i, d in enumerate(data):box_data.append([d['Min'], d['50%'], d['95%'], d['99%'], d['Max']])means.append(d['Mean'])positions.append(i + 1)# 创建图形fig, ax = plt.subplots()# 绘制箱线图主体ax.boxplot(box_data, vert=False, positions=positions, patch_artist=True, showmeans=False,meanline=True, widths=0.6)# 添加均值点for i, mean in enumerate(means):ax.plot(mean, positions[i], 'ro')# 设置轴标签ax.set_yticks(np.arange(1, len(data) + 1))ax.set_yticklabels([f'Data {i + 1}' for i in range(len(data))])# 添加标题和标签plt.title('Custom Box Plot with Multiple Data Sets')plt.xlabel('Value')# 显示图形plt.show()plt.savefig('./boxPlot_auto.png')

        print('自定义箱线图')plt.clf()  # 清除当前图形内容# 数据# Min、50%、Mean、95%、99%、Maxdata = [{'data1':[10,50,44,90,97,100]},{'data2':[20,60,65,85,92,95]},{'data3':[5,40,45,80,88,90]}]# 准备箱线图数据box_data = [d[list(d.keys())[0]] for d in data]  # 提取数据labels = [list(d.keys())[0] for d in data]means = [d[list(d.keys())[0]][2] for d in data]# 创建图形fig, ax = plt.subplots()# 绘制箱线图主体bp = ax.boxplot(box_data, vert=False,  patch_artist=True, showmeans=True,meanline=True)# 添加均值点for i, mean in enumerate(means):ax.plot(mean, i+1, 'ro')# 设置轴标签ax.set_yticklabels(labels)# 添加标题和标签plt.title('Custom Box Plot with Multiple Data Sets')plt.xlabel('Value')# 显示图形# plt.show()plt.savefig('./boxPlot_auto.png')
  • box_data提供了要绘制的数据。
  • vert=False表示绘制水平的箱线图。
  • patch_artist=True使得箱线图的箱体部分被填充颜色。
  • showmeans=True在箱线图中显示均值。
  • meanline=True用线条表示均值。

 

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

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

相关文章

【PHP】使用$this->request->filter() 方法对请求数据进行过滤处理

在ThinkPHP5(TP5)框架中,$this->request->filter() 方法用于对请求数据进行过滤处理,以确保数据的安全性和一致性。过滤规则可以是PHP内置的函数、自定义函数,或是ThinkPHP提供的过滤器。下面列举了一些常用的过…

【c语言】字符串函数和内存函数

🌟🌟作者主页:ephemerals__ 🌟🌟所属专栏:C语言 目录 前言 一、字符串函数 1.strlen的使用和模拟实现 2.strcpy的使用和模拟实现 3.strcat的使用和模拟实现 4.strcmp的使用和模拟实现 5.strstr的使…

springboot3多模块实践

先帖下目录结构&#xff0c;直接在idea里面新建就行&#xff0c;删掉多余的文件 子模块的新建 根目录pom文件&#xff0c;注意modules、packaging&#xff0c;dependencyManagement统一管理依赖&#xff0c;子模块添加依赖的时候就不用加版本号 <?xml version"1.0…

SAP_FICO模块-获利能力段新增特征字段

业务背景&#xff1a; 公司有启用获利能力分析功能&#xff0c;有一个销售订单接口&#xff0c;是通过第三方销售订单管理平台推送数据到SAP的&#xff0c;用户希望对接新增一个编号ID到销售订单上&#xff0c;并且可以用KE24/KE30报表查看显示&#xff1b; 对于我这么一个后勤…

python3获取显示器信息并计算出各个显示器是多少寸

1、将宽度和高度从毫米转换为英寸(1英寸 = 25.4毫米)。 2、使用勾股定理计算对角线长度。 运行这个脚本后,将会得到每个显示器的对角线尺寸(以英寸为单位),从而确定显示器的尺寸。 pip install screeninfofrom screeninfo import get_monitors import mathdef get_displ…

高通Android13 WIFI配置国家码

不同国家&#xff0c;WIFI使用的信道是不同的&#xff0c;2.4G一共有14个信道&#xff0c;中国使用1-13信道&#xff0c;美国则使用1-11信道。因此&#xff0c;我们需要指定WIFI的国家码&#xff0c;来确定WIFI在扫描和连接过程中&#xff0c;可以在哪些信道上进行。 设置国家…

Java面试八股之简述JVM内存结构

简述JVM内存结构 Java虚拟机&#xff08;JVM&#xff09;内存结构主要分为线程私有区域和线程共享区域两大部分&#xff0c;具体组成部分如下&#xff1a; 线程私有区域 程序计数器&#xff08;Program Counter Register&#xff09;&#xff1a; 记录当前线程执行的字节码行…

逻辑整理(光伏发电预测算法部署用的)

def main():while True:if is_true_month(): # 检查是否为每年的1月份、4月份、7月份、10月份的凌晨1&#xff1a;00&#xff0c;判断到minget_new_history_data # 获取最新的3个月左右的历史数据train model # 进行模型训练save model # 保存模型 在之前模型保存的位置直接覆…

三角形法恢复空间点深度

三角形法恢复空间点深度 如下图&#xff0c;以图 I 1 I_1 I1​为参考&#xff0c;图 I 2 I_2 I2​的变换矩阵为 T T T。相机光心为 O 1 O_1 O1​和 O 2 O_2 O2​。在图 I 1 I_1 I1​中有特征点 p 1 p_1 p1​&#xff0c;对应图 I 2 I_2 I2​中有特征点 p 2 p_2 p2​。理论上直…

战略网络优化:网络可观测性的综合方法

在网络成为运营支柱的时代&#xff0c;了解和优化网络性能至关重要。网络可观测性是了解网络性能的关键&#xff0c;它以一种全面、主动的方式超越了传统监控。本文说明了网络可观测性的变革力量&#xff0c;详细介绍了其优势、差异化因素及其在现代网络管理中的关键作用。 什…

vue学习(三)

14.监视属性watch 当被监视的属性发生变化时&#xff0c;回调函数立即调用&#xff0c;进行操作 监视的两种写法&#xff1a;直接配置或者通过vm添加 watch:{isHot:{immediate:true, //首次用到执行handler(newValue,oldValue){console.log("isHot 被修改了",newV…

python如何做报表系统

首先我们安装的python和PyQt5要保持一致&#xff0c;要么都是32位或者都是64位。 下载安装&#xff0c;安装完成之后我们记得要设置环境变量。 一路选择“下一步”就可以了。 安装完成之后我们需要验证是否成功。 pyqt5的安装直接安装就可以的&#xff0c;主要更改环境变量~~\p…

日语 11 12

11. 若者の意識 わかもの  いしき 新作 新作 新作 新作 新作 しんさく 公開 公開 公開 公開 公開 こうかい 映像 映像 映像 映像 映像 えいぞう 人気 人気 人気 人気 人気 にんき 来週 来週 来週 来週 来週 らいしゅう 外国 外国 外国 外国 外…

数据结构之B数

目录 1.概述 2.特点 3.诞生 4.优缺点 4.1.优点 4.2.缺点 5.应用场景 6.C语言中的B树实现例子 7.总结 1.概述 B树&#xff08;B-tree&#xff09;是一种自平衡的树数据结构&#xff0c;广泛应用于数据库和文件系统中&#xff0c;以便高效地进行顺序读取、写入以及查找…

桥式起重机司机精选试题(附答案)

1、【多选题】凡能引起可燃物质燃烧的热能称为着火源&#xff0c;着火源类型有:( )。( ABCD ) A、明火 B、电气火 C、雷电产生的火花 D、化学反应热 2、【多选题】制动器失效的主要原因是:( )。(BCD) A、制动带间隙过小 B、制动带磨损 C、弹簧失效 D、带上有油 3、【多…

vue3.0(十四)内置组件KeepAlive

文章目录 一、KeepAlive是什么1.KeepAlive的props属性2.KeepAlive的生命周期 二、使用场景三、源码四、缓存后如何获取数据 一、KeepAlive是什么 keep-alive是vue中的内置组件&#xff0c;能在组件切换过程中将状态保留在内存中&#xff0c;防止重复渲染DOM keep-alive 包裹动…

短剧app对接广告联盟流量变现开发 搭建

短剧APP对接广告联盟以实现流量变现的开发和搭建是一个综合性的过程&#xff0c;涉及多个关键步骤和要素。以下是一个大致的指南&#xff1a; 确定目标与定位&#xff1a; 明确短剧APP的目标受众是谁&#xff0c;以及其主要定位是什么&#xff0c;例如是提供原创短剧内容&#…

使用 C# 进行面向对象编程:第 9 部分

使用 OOP 的用户活动日志 应用程序背后的关键概念 在这一部分中&#xff0c;我们将使用之前学到的一些 OOP 概念。我们将创建一个小型应用程序。在继续之前&#xff0c;请阅读我的文章user-activity-log-using-C-Sharp-with-sql-server/。在本课程中&#xff0c;我们将再次使…

国内公开数据

以下是一些关于国内政府部门公布的数据或互联网上开放数据的资源&#xff0c;包括CSV、JSON和Parquet格式&#xff1a; 国内政府部门公开数据 中国政府数据开放平台 链接: 数据开放平台概要: 提供来自中国各级政府的公开数据集&#xff0c;数据格式包括CSV、JSON等。 上海市公…

2024年燃气企业负责人和安全管理人员考试题库。

31.使用&#xff08; &#xff09;进行液化天然气(LNG)的输送&#xff0c;对于卸、装车可以缩短卸、装车时间&#xff0c;提高输送效率。 A.低温泵 B.增压器 C.减压器 答案:A 32.液化天然气(LNG)用作调峰气源时&#xff0c;应注意与原燃气的&#xff08; &#xff09;&…