【数据分析之道-Matplotlib(八)】Matplotlib箱线图

news2024/11/29 5:34:37

在这里插入图片描述

文章目录

  • 专栏导读
  • 1、Matplotlib箱线图boxplot()基本语法
  • 2、Matplotlib箱线图boxplot()举例异常值
  • 3、Matplotlib箱线图boxplot()样式定义
  • 4、Matplotlib箱线图boxplot()举例带缺口
  • 5、Matplotlib箱线图boxplot()举例横向显示
  • 6、Matplotlib箱线图boxplot()举例显示平均值
  • 7、Matplotlib箱线图boxplot()举例隐藏异常值
  • 8、Matplotlib箱线图boxplot()举例异常值的样式
  • 9、Matplotlib箱线图boxplot()举例箱子的样式
  • 11、Matplotlib箱线图boxplot()举例标签说明

专栏导读

✍ 作者简介:i阿极,CSDN 数据分析领域优质创作者,专注于分享python数据分析领域知识。

本文录入于《数据分析之道》,本专栏针对大学生、初级数据分析工程师精心打造,对python基础知识点逐一击破,不断学习,提升自我。
订阅后,可以阅读《数据分析之道》中全部文章内容,包含python基础语法、数据结构和文件操作,科学计算,实现文件内容操作,实现数据可视化等等。
✍ 其他专栏:《数据分析案例》 ,《机器学习案例》

😊😊😊如果觉得文章不错或能帮助到你学习,可以点赞👍收藏📁评论📒+关注哦!👍👍👍

📜📜📜如果有小伙伴需要数据集和学习交流,文章下方有交流学习区!一起学习进步!💪

1、Matplotlib箱线图boxplot()基本语法

箱线图(Box Plot)是一种用于显示数据分布和异常值的可视化方法。它展示了一组数据的五个统计量:最小值(minimum)、第一四分位数(lower quartile)、中位数(median)、第三四分位数(upper quartile)和最大值(maximum)。箱线图还可以显示异常值(outliers)和数据的分布情况。

Matplotlib库提供了绘制箱线图的函数,其基本语法如下:

plt.boxplot(x, notch=None, sym=None, vert=None, whis=None, positions=None, widths=None,
 patch_artist=None, meanline=None, showmeans=None, showcaps=None, showbox=None, 
 showfliers=None, boxprops=None, labels=None, flierprops=None, medianprops=None, 
 meanprops=None, capprops=None, whiskerprops=None)

下面是一些常用参数的解释:

  • x: 必需参数,要绘制箱线图的数据,可以是一个数组、一个或多个列表、或一个二维数组。
  • notch: 可选参数,控制箱体是否带缺口,默认值为False。
  • sym: 可选参数,指定异常值的标记符号,默认值为None。
  • vert: 可选参数,控制箱线图的方向,可以是垂直(True)或水平(False),默认值为True。
  • whis: 可选参数,指定箱线图的须的长度,表示数据的分布范围,默认值为1.5。
  • showfliers: 可选参数,控制是否显示异常值,默认值为True。
  • boxprops: 可选参数,用于设置箱体的属性,如颜色、填充等。
  • labels: 可选参数,用于设置箱线图的标签。

下面是一个简单的示例,演示如何使用箱线图绘制一组数据的分布:

import matplotlib.pyplot as plt
import numpy as np

# 生成随机数据
np.random.seed(0)
data = np.random.randn(100)

# 绘制箱线图
plt.boxplot(data)

# 添加标签和标题
plt.xlabel('Data')
plt.ylabel('Values')
plt.title('Box Plot')

# 显示图表
plt.show()

在这里插入图片描述

下面是一个示例,演示如何绘制多个箱线图:

import matplotlib.pyplot as plt
import numpy as np

# 生成随机数据
np.random.seed(0)
data1 = np.random.randn(100)
data2 = np.random.randn(100)
data3 = np.random.randn(100)

# 将数据组织为二维数组
data = [data1, data2, data3]

# 绘制多个箱线图
plt.boxplot(data)

# 添加标签和标题
plt.xlabel('Data')
plt.ylabel('Values')
plt.title('Multiple Box Plots')

# 显示图表
plt.show()

在这里插入图片描述

2、Matplotlib箱线图boxplot()举例异常值

在箱线图中,异常值是指位于数据分布之外的值,它们与其他数据点相比明显偏离。异常值可以通过箱线图的须和离群点来表示。

下面是一个示例,演示如何在箱线图中标记异常值:

import matplotlib.pyplot as plt
import numpy as np

# 生成带有异常值的随机数据
np.random.seed(0)
data = np.concatenate([np.random.normal(0, 1, 100), np.array([5, -5, 8, -8])])

# 绘制箱线图
plt.boxplot(data, showfliers=True)

# 添加标签和标题
plt.xlabel('Data')
plt.ylabel('Values')
plt.title('Box Plot with Outliers')

# 显示图表
plt.show()

在这里插入图片描述

在这个示例中,我们生成了一个包含正态分布数据和异常值的随机数据集data。异常值包括值为5、-5、8和-8的数据点。
然后,我们使用plt.boxplot()函数并将showfliers参数设置为True,以显示箱线图中的异常值。
最后,我们添加了标签和标题,以便更好地说明图表的含义。

3、Matplotlib箱线图boxplot()样式定义

boxplot()函数提供了一系列参数,可以用于自定义箱线图的样式。

import matplotlib.pyplot as plt
import numpy as np

# Generate random data
np.random.seed(0)
data = np.random.randn(100)

# Define boxplot styles
boxprops = dict(facecolor='lightblue')
flierprops = dict(marker='o', markerfacecolor='green', markersize=5, linestyle='none')

# Create boxplot
plt.boxplot(data, patch_artist=True, boxprops=boxprops, flierprops=flierprops)

# Add labels and title
plt.xlabel('Data')
plt.ylabel('Values')
plt.title('Customized Box Plot')

# Show the plot
plt.show()

在这里插入图片描述

4、Matplotlib箱线图boxplot()举例带缺口

当绘制箱线图时,你可以使用notch=True参数来为箱体添加一个缺口,用于表示数据的置信区间。缺口的宽度取决于数据的分布。下面是一个带有缺口的箱线图示例:

import matplotlib.pyplot as plt
import numpy as np

# 生成随机数据
np.random.seed(0)
data = np.random.randn(100)

# 绘制带有缺口的箱线图
plt.boxplot(data, notch=True)

# 添加标签和标题
plt.xlabel('Data')
plt.ylabel('Values')
plt.title('Box Plot with Notch')

# 显示图表
plt.show()

在这里插入图片描述

在这个示例中,我们生成了一个随机数据集data。然后,我们使用plt.boxplot()函数并将notch=True作为参数传递,以绘制带有缺口的箱线图。
最后,我们添加了标签和标题,以便更好地说明图表的含义。

5、Matplotlib箱线图boxplot()举例横向显示

当你想要绘制横向的箱线图时,你可以使用vert=False参数将箱线图的方向设置为水平方向。这样,箱体和须将水平放置,而不是垂直放置。下面是一个横向显示的箱线图示例:

import matplotlib.pyplot as plt
import numpy as np

# 生成随机数据
np.random.seed(0)
data = np.random.randn(100)

# 绘制横向箱线图
plt.boxplot(data, vert=False)

# 添加标签和标题
plt.xlabel('Values')
plt.ylabel('Data')
plt.title('Horizontal Box Plot')

# 显示图表
plt.show()

在这里插入图片描述

在这个示例中,我们生成了一个随机数据集data。然后,我们使用plt.boxplot()函数并将vert=False作为参数传递,以绘制横向的箱线图。
最后,我们添加了标签和标题,以便更好地说明图表的含义。

6、Matplotlib箱线图boxplot()举例显示平均值

要在箱线图上显示平均值,你可以使用meanline=True参数来绘制平均线。下面是一个示例:

import matplotlib.pyplot as plt
import numpy as np

# 生成随机数据
np.random.seed(0)
data = np.random.randn(100)

# 绘制箱线图并显示平均值
plt.boxplot(data, meanline=True, showmeans=True)

# 添加标签和标题
plt.xlabel('Data')
plt.ylabel('Values')
plt.title('Box Plot with Mean')

# 显示图表
plt.show()

在这里插入图片描述

在这个示例中,我们生成了一个随机数据集data。然后,我们使用plt.boxplot()函数并将meanline=True和showmeans=True作为参数传递,以绘制带有平均线的箱线图。
最后,我们添加了标签和标题,以便更好地说明图表的含义。

7、Matplotlib箱线图boxplot()举例隐藏异常值

要在箱线图中隐藏异常值,你可以使用showfliers=False参数。下面是一个示例:

import matplotlib.pyplot as plt
import numpy as np

# 生成随机数据
np.random.seed(0)
data = np.random.randn(100)

# 绘制箱线图并隐藏异常值
plt.boxplot(data, showfliers=False)

# 添加标签和标题
plt.xlabel('Data')
plt.ylabel('Values')
plt.title('Box Plot without Outliers')

# 显示图表
plt.show()

在这里插入图片描述

8、Matplotlib箱线图boxplot()举例异常值的样式

要自定义箱线图中异常值的样式,你可以使用flierprops参数来指定异常值的属性。下面是一个示例:

import matplotlib.pyplot as plt
import numpy as np

# 生成随机数据
np.random.seed(0)
data = np.random.randn(100)
outliers = [2.5, -3.8, 3.2]  # 自定义异常值

# 绘制箱线图并自定义异常值样式
plt.boxplot(data, flierprops={'marker': 'x', 'markerfacecolor': 'red', 'markersize': 8, 'linestyle': 'none'},
            notch=True, showfliers=True)

# 添加自定义异常值
plt.scatter(np.full(len(outliers), 1), outliers, marker='x', color='red')

# 添加标签和标题
plt.xlabel('Data')
plt.ylabel('Values')
plt.title('Box Plot with Custom Outliers')

# 显示图表
plt.show()

在这里插入图片描述

在这个示例中,我们生成了一个随机数据集data,并定义了一些自定义的异常值outliers。然后,我们使用plt.boxplot()函数并通过flierprops参数传递一个字典来自定义异常值的样式,包括marker、markerfacecolor、markersize和linestyle。
为了显示自定义的异常值,我们使用plt.scatter()函数在相应位置上绘制了红色的"x"标记。
最后,我们添加了标签和标题,以便更好地说明图表的含义。

9、Matplotlib箱线图boxplot()举例箱子的样式

要自定义箱线图中箱子的样式,你可以使用boxprops参数来指定箱子的属性。下面是一个示例:

import matplotlib.pyplot as plt
import numpy as np

# 生成随机数据
np.random.seed(0)
data = np.random.randn(100)

# 绘制箱线图并自定义箱子样式
plt.boxplot(data, boxprops={'color': 'green', 'linewidth': 2, 'linestyle': '--'},
            notch=True, showfliers=True)

# 添加标签和标题
plt.xlabel('Data')
plt.ylabel('Values')
plt.title('Box Plot with Custom Box Style')

# 显示图表
plt.show()

在这里插入图片描述

在这个示例中,我们生成了一个随机数据集data。然后,我们使用plt.boxplot()函数并通过boxprops参数传递一个字典来自定义箱子的样式,包括color、linewidth和linestyle。
在这里,我们将箱子的颜色设置为绿色,线宽设置为2,线型设置为虚线。
最后,我们添加了标签和标题,以便更好地说明图表的含义。

11、Matplotlib箱线图boxplot()举例标签说明

要为箱线图添加标签说明,你可以使用labels参数来指定每个数据组的标签。下面是一个示例:

import matplotlib.pyplot as plt
import numpy as np

# 生成随机数据
np.random.seed(0)
data1 = np.random.randn(100)
data2 = np.random.randn(100) + 2
data3 = np.random.randn(100) - 2

# 绘制多个箱线图并添加标签说明
plt.boxplot([data1, data2, data3], labels=['Group 1', 'Group 2', 'Group 3'])

# 添加标签和标题
plt.xlabel('Groups')
plt.ylabel('Values')
plt.title('Box Plot with Labels')

# 显示图表
plt.show()

在这里插入图片描述

在这个示例中,我们生成了三组随机数据:data1、data2和data3。然后,我们使用plt.boxplot()函数传递这三组数据,并通过labels参数指定每个数据组的标签。
最后,我们添加了标签和标题,以便更好地说明图表的含义。


📢文章下方有交流学习区!一起学习进步!💪💪💪
📢首发CSDN博客,创作不易,如果觉得文章不错,可以点赞👍收藏📁评论📒
📢你的支持和鼓励是我创作的动力❗❗❗

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

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

相关文章

电子企业实施数字化工厂建设之前,需要注意哪些

随着工业4.0时代的到来,数字化工厂建设已成为越来越多电子企业的重要议题。数字化工厂管理系统能够提高生产效率、降低成本、提高产品质量等多个方面的优势,对于企业的可持续发展具有重要意义。然而,在实施电子企业数字化工厂建设之前&#x…

【Flutter】widgets (6) Stateful Widget 有状态组件的生命周期

文章目录 一、前言二、StatefulWidget的生命周期三、State对象的生命周期四、initState(), didUpdateWidget(), dispose()方法的用途五、StatefulWidget和State对象的生命周期六、代码示例七、总结一、前言 在上一篇文章中,我们初步认识了什么是Stateful Widget 有状态组件。…

minigpt4 部署踩坑记录

1,最近看网上minigpt4很火,下载下来试一下,把碰到问题记录一下。 2 访问 GitHub - Vision-CAIR/MiniGPT-4: MiniGPT-4: Enhancing Vision-language Understanding with Advanced Large Language Models 下载代码到 centos服务上。 3&#xf…

九耶丨阁瑞钛伦特-大型计算机硬件组成(一)

​ IBM大型机系统是由主机和多种外围设备组合形成的一个综合系统,上面是一个主机系统组成的例子。 ​以上是OS390操作系统的组成情况: MVS: 大型机操作系统的核心部分,有时又被使用为大型机操作系统的全称。 SMS: S…

文件管理开发指南全新登场,快来了解如何访问各类文件

原文:文件管理开发指南全新登场,快来了解如何访问各类文件,点击链接查看更多技术内容。 在应用开发的过程中,我们经常会用到各种各样的文件,例如文档、图片、音频、视频等,如何管理和访问这些文件&#xff…

【网络】· VTP虚拟局域网中继

目录 🍉VTP技术 🍉以太网通道配置 🍒sw1配置 🍒sw2配置 🍉VTP工作原理 🍒VTP模式 🍒VTP通告 🍒VTP的版本 🍒VTP修改编号 🍒VTP通告类型 🍒VTP修剪…

数据分析第16课seaborn可视化

FacetGrid与调色盘(参看语雀) 前言:有针对性的,选择不同的分析方式去整合数据,描述统计学: 对比分析:同期对比,环境对比等。分类分析:字段分为哪些类别,每个类别出现了多少次,哪个类别的权重是最大的。哪个类别是可以忽略的。哪个类别是干扰项。分布分析:例如身高,…

实现一个简单的事件驱动处理框架

点击上方“嵌入式应用研究院”,选择“置顶/星标公众号” 干货福利,第一时间送达! 来源 | 嵌入式应用研究院 整理&排版 | 嵌入式应用研究院 事件驱动框架允许程序处理外部事件,如网络连接、文件I/O、超时和信号。事件驱动框架可…

配置office和wps的数学公式编辑工具Mathtype7.4

一、概述 《数学公式编辑器(MathType)》 是一款专业的数学公式编辑工具,理科生专用的工具。mathtype公式编辑器能够帮助用户在各种文档中插入复杂的数学公式和符号。 数学公式编辑器工具可以轻松输入各种复杂的公式和符号,与Office文档完美结合&#xff…

imu预积分处理

VINS-Mono是HKUST的Shen Shaojie团队开源的一套非常优秀的Visual-Inertial融合定位算法。关于算法的介绍以及论文可以通过此链接查看。 IMU、ˆω和ˆa的原始陀螺仪和加速度计测量值由下式给出: 在车身坐标系测量的IMU测量结合了抗重力和平台动力学的力&#xff0c…

[蓝桥杯 2018 国 B] 矩阵求和

题目描述 经过重重笔试面试的考验,小明成功进入 Macrohard 公司工作。 今天小明的任务是填满这么一张表: 表有 n 行 n 列,行和列的编号都从 1 算起。 其中第 ii 行第 jj 个元素的值是 gcd(i,j) 的平方,gcd 表示最大公约数&#xf…

什么样的电容笔好用?好用的平板触控笔

现在使用电容笔的人越来越多了,尤其学生党和上班族,可以使用电容笔来提高生产效率,这个时候电容笔的书写流畅度就非常重要,今天给大家介绍四款平价又好用的电容笔。跟我来看看吧! 一、使用电容笔的用途: …

四、LLC 谐振变换器

变换器实现 ZVS 的限制 全面了解LLC谐振变换器实现ZVS的条件,把变换器主电路变形成图所示形式。其中 Coss1、Coss2分别为开关管 S1、S2 漏-源极间的寄生电容,并且Coss1Coss2 Coss 。Cstray为与谐振网络并联的等效寄生电容,则变换器在 ZVS 条…

【数据恢复、安全和备份解决方案】上海道宁与LSoft为企业提供先进的技术来处理现代数据安全和保存问题

需要备份和恢复磁盘、 恢复已删除的文档和照片、 安全擦除磁盘、 监控硬盘健康状况、 甚至在Windows 无法正常启动时修复 PC? Active Data Studio是 一组桌面应用程序 和可引导CD/DVD或USB磁盘 用于将任何系统引导至 Windows恢复环境 开发商介绍 LSoft Te…

MySQL数据库 – node使用

1 MySQL查询对象 2 MySQL查询数组 3 mysql2库介绍使用 4 mysql2预处理语句 5 mysql2连接池使用 6 mysql2的Promi 这里仅说明如何使用服务器连接数据库并进行操作。 预处理语句就是可以输入变量的语句(表现形式是有符号:?)。需…

计算机网络管理-SNMP网络管理中遇到的问题及解决

启动网络发现的网络拓扑呈现错误 在实验中我发现,进入SNMPc 工具后,因为先前我是开启了网络发现的功能的,因此程序会自动生成拓补图,自动生成的网络规划是错误的,如下图所示: 我的设备:cdypc没…

手机号码在网时长 API 探索:精准营销与用户洞察

随着移动互联网的蓬勃发展,手机在网时长成为评估用户活跃度和风险控制的关键指标。手机号码在网时长 API 提供了查询手机号在网时长、判断活跃程度以及个性化推荐和优惠等功能,为企业实现精准营销、有效风险控制和深入用户洞察提供了有力支持。 本文将深…

pnpm v8.6 正式发布,软件包管理器

导读pnpm 是一个快速、节省磁盘空间的软件包管理器。它使用一个内容可寻址的文件系统来存储磁盘上所有模块目录的所有文件。当使用 npm 或 Yarn 时,如果你有 100 个使用 lodash 的项目,你将在磁盘上有 100 份 lodash 的拷贝,而使用 pnpm 时&a…

分类树,我从2s优化到0.1s

前言 分类树查询功能,在各个业务系统中可以说随处可见,特别是在电商系统中。 但就是这样一个简单的分类树查询功能,我们却优化了5次。 到底是怎么回事呢? 背景 我们的网站使用了SpringBoot推荐的模板引擎:Thymelea…

保经济、促创新,汽车行业综合采购(系统)数智化解决方案

汽车行业是中国国民经济的支柱产业,公安部数据显示,我国平均每百户家庭拥有汽车达到60辆。广阔的市场为行业带来大量需求,以及激烈的市场竞争;同时我国汽车产业正处在从传统工业时代向数字时代迈进的关键时期,急需创新…