matplotlib之pyplot模块——绘制箱线图(盒须图)boxplot()(二)演示外观参数、返回值

article/2025/9/15 4:58:45

当前有效matplotlib版本为:3.4.1

概述

boxplot()函数的作用是绘制箱线图(箱线图、盒须图、箱图)。

箱线图是由一个箱体和一对箱须所组成的统计图形。箱体是由第一四分位数、中位数(第二四分位数)和第三四分位数所组成的。在箱须的末端之外的数值可以理解成离群值,因此,箱须是对一组数据范围的大致直观描述。

函数的签名为matplotlib.pyplot.boxplot(x, notch=None, sym=None, vert=None, whis=None, positions=None, widths=None, patch_artist=None, bootstrap=None, usermedians=None, conf_intervals=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, manage_ticks=True, autorange=False, zorder=None, *, data=None)

函数的参数为:

  • x:输入数据。类型为数组或向量序列。必备参数。

  • notch:控制箱体中央是否有V型凹槽。当取值为True时,箱体中央有V型凹槽,凹槽表示中位数的置信区间;取值为False时,箱体为矩形。类型为布尔值,默认值为False。可选参数。

  • sym:离群点的默认标记符号,详解flierprops参数。类型为字符串,默认值为'None'。可选参数。取值为''隐藏离群点,取值为'None'时,取值为'b+'

  • vert:箱体的方向,当取值为True时,绘制垂直箱体,当取值为False时,绘制水平箱体。类型为布尔值,默认值为True。可选参数。

  • whis:箱须的位置。类型为浮点数或浮点数二元组,默认值为1.5。 可选参数。

    • 浮点数,则下箱须位于高于Q1-whis*(Q3-Q1)的最低数据处,上箱须位于低于Q3+whis*(Q3-Q1)下方的最高数据处,其中Q1Q3分别为下四分位数和上四分位数。默认值whis=1.5对应于箱线图的原始定义。
    • 浮点数元组,则表示要在绘制箱须的百分位数(例如,(5,95))。将其设置为(0,100)箱须覆盖整个数据范围。
      Q1==Q3时,如果autorangeTruewhis将自动设置为(0,100)

    箱须范围之外的数据将被视为异常值,绘制为点。

  • bootstrap:是否使用bootstrap方法计算中位数置信区间。类型为整数。可选参数。当参数取值为None时,中位数置信区间由某种高斯渐进逼近算法确定。否则,采用bootstrap方法求中位数95%置信区间,bootstrap 参数定义了抽样次数。建议取值范围为1000-10000

  • usermedians:是否指定中位数。类型为一维类数组结构。可选参数。对于一维数组,数组元素个数为1,对于多维数组,长度等于len(x)。如果元素不为None,则将该值强制设置为对应数据集的中位数;如果元素为None,则由matplotlib生成中位数。

  • conf_intervals:是否指定置信区间。类型为类数组结构,形状为 (len(x), 2)。可选参数。如果元素不为None,则将该值强制设置为箱体V型凹槽位置(只有当notch参数为True时绘制);如果元素为None,箱体V型凹槽的位置由其他参数计算,例如bootstrap

  • positions:指定箱体的位置。刻度和极值会自动匹配箱体位置。类型为类数组结构。可选参数。默认值为range(1, N+1)N为箱线图的个数。

  • widths:箱体的宽度。类型为浮点数或类数组结构。默认值为0.50.15*极值间的距离

  • patch_artist:控制箱体的生成对象。类型为布尔值,默认值为False。可选参数。当取值为False时,箱体由Line2D生成,否则,箱体由Patch对象生成。

  • labels:每个数据集的标签,默认值为'None'。类型为序列。可选参数。

  • manage_ticks:控制刻度和标签位置,取值为True时,刻度和标签位置自动匹配箱线图的位置。类型为布尔值,默认值为True。可选参数。

  • autorange:类型为布尔值,默认值为False。可选参数。当取值为True且数据分布满足上四分位数(75%)和下四分位数(25%)相等,whis设置为(0, 100) ,即箱须端点为数据的最大值和最小值。

  • meanline:均值显示为线还是点。类型为布尔值,默认值为False。可选参数。当取值为True,且showmeansshownotches参数均为True,时显示为线,线条属性受meanprops参数控制;否则显示为点。

  • zorder:箱线图的叠放次序。类型为浮点数,默认值为Line2D.zorder = 2。可选参数。

  • showcaps:是否显示箱须两端的横杠。类型为布尔值,默认值为True。可选参数。

  • showbox:是否显示箱体。类型为布尔值,默认值为True。可选参数。

  • showfliers:是否显示离群值。类型为布尔值,默认值为True。可选参数。

  • showmeans:是否显示算术平均值。类型为布尔值,默认值为False。可选参数。

  • capprops:箱须横杠的样式。类型为字典,默认值为None。可选参数。

  • boxprops:箱体的样式。类型为字典,默认值为None。可选参数。

  • whiskerprops:箱须的样式。类型为字典,默认值为None。可选参数。

  • flierprops:离群点的样式。类型为字典,默认值为None。可选参数。

  • medianprops:中位数的样式。类型为字典,默认值为None。可选参数。

  • meanprops:算术平均值的样式。类型为字典,默认值为None。可选参数。

函数返回值为字典对象。该字典将箱线图的每个组件都映射为一个Line2D实例列表。字典的键如下:

  • boxes:箱体。
  • medians:表示中位数的线。
  • whiskers: 箱须线。
  • caps:箱须端点的横杠。
  • fliers: 离群点。
  • means:表示均值的点或线。

案例:演示showcaps参数控制箱须横杠显示

在这里插入图片描述

import matplotlib.pyplot as plt
import numpy as npplt.rcParams['font.family'] = 'simhei'
plt.rcParams['axes.unicode_minus'] = Falsedata = np.random.normal(size=1000)plt.subplot(121)
plt.title("默认样式")
plt.boxplot(data)
plt.subplot(122)
plt.title("隐藏箱须横杠")
plt.boxplot(data, showcaps=False)plt.show()

案例:演示showbox参数控制箱体显示

在这里插入图片描述

import matplotlib.pyplot as plt
import numpy as npplt.rcParams['font.family'] = 'simhei'
plt.rcParams['axes.unicode_minus'] = Falsedata = np.random.normal(size=1000)plt.subplot(121)
plt.title("默认样式")
plt.boxplot(data)
plt.subplot(122)
plt.title("隐藏箱体")
plt.boxplot(data, showbox=False)plt.show()

案例:演示showfliers参数控制离群值显示

在这里插入图片描述

案例:演示showfliers参数控制离群值显示

import matplotlib.pyplot as plt
import numpy as npplt.rcParams['font.family'] = 'simhei'
plt.rcParams['axes.unicode_minus'] = Falsedata = np.random.normal(size=1000)plt.subplot(121)
plt.title("默认样式")
plt.boxplot(data)
plt.subplot(122)
plt.title("隐藏离群值")
plt.boxplot(data, showfliers=False)plt.show()

案例:演示showmeans参数控制均值显示

在这里插入图片描述

import matplotlib.pyplot as plt
import numpy as npplt.rcParams['font.family'] = 'simhei'
plt.rcParams['axes.unicode_minus'] = Falsedata = np.random.normal(size=1000)plt.subplot(121)
plt.title("默认样式")
plt.boxplot(data)
plt.subplot(122)
plt.title("显示均值")
plt.boxplot(data, showmeans=True)plt.show()

案例:演示capprops参数控制箱须横杠样式

在这里插入图片描述

import matplotlib.pyplot as plt
import numpy as npplt.rcParams['font.family'] = 'simhei'
plt.rcParams['axes.unicode_minus'] = Falsedata = np.random.normal(size=1000)plt.subplot(121)
plt.title("默认样式")
plt.boxplot(data)
plt.subplot(122)
plt.title("设置箱须横杠样式")
plt.boxplot(data, capprops={'color': 'red', 'linewidth': 2, 'linestyle': '--'})plt.show()

案例:演示boxprops参数控制箱体样式

在这里插入图片描述

import matplotlib.pyplot as plt
import numpy as npplt.rcParams['font.family'] = 'simhei'
plt.rcParams['axes.unicode_minus'] = Falsedata = np.random.normal(size=1000)plt.subplot(121)
plt.title("默认样式")
plt.boxplot(data)
plt.subplot(122)
plt.title("设置箱体样式")
plt.boxplot(data, boxprops={'color': 'b', 'linewidth': 2, 'linestyle': '--'})plt.show()

案例:演示whiskerprops参数控制箱须样式

在这里插入图片描述

import matplotlib.pyplot as plt
import numpy as npplt.rcParams['font.family'] = 'simhei'
plt.rcParams['axes.unicode_minus'] = Falsedata = np.random.normal(size=1000)plt.subplot(121)
plt.title("默认样式")
plt.boxplot(data)
plt.subplot(122)
plt.title("设置箱须样式")
plt.boxplot(data, whiskerprops={'color': 'g', 'linewidth': 2, 'linestyle': '--'})plt.show()

案例:演示flierprops参数控制离群点样式

在这里插入图片描述

import matplotlib.pyplot as plt
import numpy as npplt.rcParams['font.family'] = 'simhei'
plt.rcParams['axes.unicode_minus'] = Falsedata = np.random.normal(size=1000)plt.subplot(121)
plt.title("默认样式")
plt.boxplot(data)
plt.subplot(122)
plt.title("设置离群点样式")
plt.boxplot(data, flierprops=dict(marker='o', markerfacecolor='green', markersize=12,linestyle='none'))plt.show()

案例:演示medianprops参数控制中位数线样式

在这里插入图片描述

import matplotlib.pyplot as plt
import numpy as npplt.rcParams['font.family'] = 'simhei'
plt.rcParams['axes.unicode_minus'] = Falsedata = np.random.normal(size=1000)plt.subplot(121)
plt.title("默认样式")
plt.boxplot(data)
plt.subplot(122)
plt.title("设置中位数线样式")
plt.boxplot(data, medianprops=dict(color='red', linewidth=3))plt.show()

案例:演示meanprops参数控制均值样式

在这里插入图片描述

import matplotlib.pyplot as plt
import numpy as npplt.rcParams['font.family'] = 'simhei'
plt.rcParams['axes.unicode_minus'] = Falsedata = np.random.normal(size=1000)plt.subplot(221)
plt.title("默认样式")
plt.boxplot(data)
plt.subplot(222)
plt.title("默认均值样式")
plt.boxplot(data, showmeans=True)
plt.subplot(223)
plt.title("设置均值点样式")
plt.boxplot(data, showmeans=True, meanprops=dict(marker='o', markerfacecolor='r'))
plt.subplot(224)
plt.title("设置均值线样式")
plt.boxplot(data, showmeans=True, meanline=True,meanprops=dict(color='g', linestyle='--'))
plt.show()

案例:演示patch_artist参数和boxprops参数控制箱体填充样式

在这里插入图片描述

import matplotlib.pyplot as plt
import numpy as npplt.rcParams['font.family'] = 'simhei'
plt.rcParams['axes.unicode_minus'] = Falsedata = np.random.normal(size=1000)plt.subplot(131)
plt.title("默认样式")
plt.boxplot(data)
plt.subplot(132)
plt.title("默认箱体填充样式")
plt.boxplot(data, patch_artist=True)
plt.subplot(133)
plt.title("设置箱体填充颜色")
plt.boxplot(data, patch_artist=True, boxprops=dict(facecolor='r'))plt.show()

案例:演示返回值的不同情况

在这里插入图片描述
输出为:

# 默认样式返回值
{'boxes': [<matplotlib.lines.Line2D object at 0x000001A0F0CA31D0>],'caps': [<matplotlib.lines.Line2D object at 0x000001A0F0CA3A90>,<matplotlib.lines.Line2D object at 0x000001A0F0CA3D68>],'fliers': [<matplotlib.lines.Line2D object at 0x000001A0F2CBA358>],'means': [],'medians': [<matplotlib.lines.Line2D object at 0x000001A0F2CBA048>],'whiskers': [<matplotlib.lines.Line2D object at 0x000001A0F0CA3518>,<matplotlib.lines.Line2D object at 0x000001A0F0CA37B8>]}
# 显示均值时的返回值              
{'boxes': [<matplotlib.lines.Line2D object at 0x000001A0F2CFD550>],'caps': [<matplotlib.lines.Line2D object at 0x000001A0F2CFDDD8>,<matplotlib.lines.Line2D object at 0x000001A0F2D0E0F0>],'fliers': [<matplotlib.lines.Line2D object at 0x000001A0F2D0E978>],'means': [<matplotlib.lines.Line2D object at 0x000001A0F2D0E6A0>],'medians': [<matplotlib.lines.Line2D object at 0x000001A0F2D0E3C8>],'whiskers': [<matplotlib.lines.Line2D object at 0x000001A0F2CFD828>,<matplotlib.lines.Line2D object at 0x000001A0F2CFDB00>]}
# 箱体由Patch生成时的返回值              
{'boxes': [<matplotlib.patches.PathPatch object at 0x000001A0F2D517F0>],'caps': [<matplotlib.lines.Line2D object at 0x000001A0F2D51F98>,<matplotlib.lines.Line2D object at 0x000001A0F2D63320>],'fliers': [<matplotlib.lines.Line2D object at 0x000001A0F2D638D0>],'means': [],'medians': [<matplotlib.lines.Line2D object at 0x000001A0F2D635F8>],'whiskers': [<matplotlib.lines.Line2D object at 0x000001A0F2D51A58>,<matplotlib.lines.Line2D object at 0x000001A0F2D51D30>]}
import matplotlib.pyplot as plt
import numpy as np
from pprint import pprintplt.rcParams['font.family'] = 'simhei'
plt.rcParams['axes.unicode_minus'] = Falsedata = np.random.normal(size=1000)plt.subplot(131)
plt.title("默认样式")
bdict1=plt.boxplot(data)
pprint(bdict1)
plt.subplot(132)
plt.title("显示均值")
bdict2=plt.boxplot(data,showmeans=True)
pprint(bdict2)
plt.subplot(133)
plt.title("箱体由Patch对象生成")
bdict3=plt.boxplot(data,patch_artist=True)
pprint(bdict3)
plt.show()

http://chatgpt.dhexx.cn/article/m4mRL5JV.shtml

相关文章

matplotlib之pyplot模块——绘制箱线图(盒须图)boxplot()(一)基本参数

当前有效matplotlib版本为&#xff1a;3.4.1。 概述 boxplot()函数的作用是绘制箱线图&#xff08;箱线图、盒须图、箱图&#xff09;。 箱形图&#xff08;boxplot&#xff09;又称盒须图或箱线图&#xff0c;是一种用来显示某一组数据分散情况的统计图&#xff0c;因形状如…

matplotlib.pyplot.boxplot()绘制箱型图

目录 一、matplotlib.pyplot.boxplot()语法 二、绘制箱型图 ①绘制简单箱型图 ②各个参数绘制箱型图 &#xff08;1&#xff09;notch参数&#xff08;bool值&#xff0c;是否凹口的形式展现箱线图&#xff0c;默认值False非凹口&#xff09; &#xff08;2&#xff09;sy…

Matlab中boxplot函数的用法

Boxplot函数&#xff1a; boxplot&#xff08;x&#xff09;函数&#xff1a;绘制数据X的盒须图。如果X为矩阵&#xff0c;则对每一列分别进行绘制。盒须图用于表现数据统计信息&#xff0c;由“盒”与“须”组成&#xff0c;“盒”中有一条直线&#xff0c;表示样本的中位数&a…

Matplotlib——箱线图boxplot()函数

箱线图一般用来展现数据的分布&#xff0c;如上下四分位值、中位数等&#xff0c;也可以直观地展示异常点。Matplotlib提供了boxplot()函数绘制箱线图。 import matplotlib.pyplot as plt_ plt.boxplot(range(10)) # 10个数&#xff0c;0-9plt.show()箱线图虽然看起来简单&a…

python绘制箱线图boxplot()

最近在处理数据时&#xff0c;需要使用python绘制箱线图。 1. 箱线图 箱线图&#xff08;Box-plot&#xff09;又称为盒式图或箱型图&#xff0c;是一种用来显示一组数据分散情况的统计图&#xff0c;它能显示一组数据的上界、下界、中位数、上下四分位数以及异常值等。 四分…

boxplot

1. 简介 箱形图&#xff0c;又称为盒须图、盒式图、盒状图或箱线图&#xff0c;是一种用作显示一组数据分散情况资料的统计图。箱形图于1977年由美国著名统计学家约翰图基&#xff08;John Tukey&#xff09;发明。它能显示出一组数据的最大值、最小值、中位数、上下四分位数及…

Box plot (箱线图) 解读以及Python实现

因为最近论文有信息量很大的结果需要展示,如果用常用的折线图或者柱状图很难集中且全面的展示实验结果,和老板讨论之后了解到--箱线图这种神奇的图形展示方式。边学边用~记录在这里~也给有论文写作需要的小伙伴们一个参考~ 1. 什么是箱线图? 箱形图(Box-plot)又称为盒须…

箱线图(Boxplot)也称箱须图(Box-whisker Plot)

简述&#xff1a; 箱线图&#xff08;Boxplot&#xff09;也称箱须图&#xff08;Box-whisker Plot&#xff09;&#xff0c;是利用数据中的五个统计量&#xff1a;最小值、第一四分位数、中位数、第三四分位数与最大值来描述数据的一种方法。它也可以粗略地看出数据是否具有有…

plt.boxplot()函数绘制箱图、常用方法及含义详解

1. 箱图含义 箱图是一中用于统计数据分布的统计图&#xff0c;也可以粗略地看出数据是否具有对称性&#xff0c;分布的分散程度等信息。箱图中的信息含义如下&#xff1a; 最下方的横线表示最小值最上方的横线表示最大值黑色空心圆圈表示异常值黑色实心圆圈表示极端值箱子由…

mysql查询between_MySQL查询数据过滤之BETWEEN操作符简介

BETWEEN运算符是一种逻辑运算符&#xff0c;判断指定值是否在范围内。 BETWEEN运算符的语法&#xff1a; expr [NOT] BETWEEN begin_expr AND end_expr; expr 是判断值是否在 begin_expr 和 end_expr 范围的内的表达式。 如果的值 expr大于或等于(> ) begin_expr &#x…

mysql 查询正在进行的事务

SELECT * FROM information_schema.innodb_trx字段解析 innodb_trx表&#xff1a; trx_id&#xff1a;事务ID。 trx_state&#xff1a;事务状态&#xff0c;有以下几种状态&#xff1a;RUNNING、LOCK WAIT、ROLLING BACK 和 COMMITTING。 trx_started&#xff1a;事务开始时间…

MySql 查询结果列拼接

MySql 查询结果列拼接 select concat( country,‘‘, province,’’, city,‘_’, store_properties) from wxshops

mysql 查询json字段

目录 json字段查询 字段格式 ​编辑查询&#xff1a; 注意&#xff1a; eg: json字段更新 json字段作为条件判断 代码&#xff1a; json字段判断&#xff08;json字段中有[]&#xff0c;需要判断就可以使用&#xff09; 结果 json字段查询 字段格式 查询&#xff…

mysql查询表的内容_mysql查询表内容

一&#xff0c;说明&#xff1a;表名为student 1&#xff0c;查询某个表里的字段 select 字段名1&#xff0c;字段名1 form student; 例如&#xff1a;查询student中的sname select sname from student; 2,查询某个表里的字段(字段下面有重复的内容)&#xff0c;并且显示的查询…

mysql查询排名

在MySQL中&#xff0c;不存在类似于SQL Server或Orcal等中的rank()函数来得到排名&#xff1b;所以我们需要手动地写这个rank功能。 基本知识&#xff1a; sql语句中&#xff0c;使用来定义一个变量。如&#xff1a;ranksql语句中&#xff0c;使用:来给变量赋值,&#xff1a;r…

MySQL 多种查询方法

这里写目录标题 查询1、单表查询1.选择表中的若干列2.选择表中的若干元组3.order by子句4.聚集函数5.group by分组 2、连接查询1、等值与非等值连接查询2、自身连接3、外连接4、多表连接 3、嵌套查询1、带有IN谓词的子查询2、带有比较运算符的子查询3、带有ANY或ALL谓词的子查询…

MySQL查询语句

一、基本查询 1、查询多个字段 SELECT 字段1&#xff0c;字段2&#xff0c;字段3... FROM 表名; SELECT * FROM 表名;2、设置别名 SELECT 字段1 [AS 别名1],字段2 [AS 别名2]... FROM 表名;3、去除重复记录 SELECT DISTINCT 字段列表 FROM 表名;1、查询指定字段name&#xf…

webpack面试题整理

文章目录 webpack 面试题整理 谈谈你对Webpack的理解Webpack的打包过程/打包原理/构建流程&#xff1f;Webpack中loader的作用/ loader是什么&#xff1f; 常见的loader有哪些&#xff1f; Plugin有什么作用&#xff1f;/Plugin是什么 常见的Plugin有哪些Webpack 插件的执行顺序…

WebPack面试题汇总

1&#xff0c;Webpack有什么作用&#xff0c;谈谈你对它的理解 现在的前端网页功能丰富&#xff0c;特别是SPA&#xff08;single page web application 单页应用&#xff09;技术流行后&#xff0c;JavaScript的复杂度增加和需要一大堆依赖包&#xff0c;还需要解决Scss、Les…

webpack的面试题(吐血整理)

以下为整理的webpack面试题&#xff0c;如有不足之处&#xff0c;还请大家多多指正。 一、webpack的构建流程 二、对webpack的理解 webpack是一个打包模块化js的工具&#xff0c;在webpack里一切文件皆模块&#xff0c;通过loader转换文件&#xff0c;通过plugin注入钩子&#…