matplotlib之pyplot模块——绘制箱线图(盒须图)boxplot()(二)演示外观参数、返回值
当前有效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)
下方的最高数据处,其中Q1
和Q3
分别为下四分位数和上四分位数。默认值whis=1.5
对应于箱线图的原始定义。 - 浮点数元组,则表示要在绘制箱须的百分位数(例如,
(5,95)
)。将其设置为(0,100)
箱须覆盖整个数据范围。
当Q1==Q3
时,如果autorange
为True
,whis
将自动设置为(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.5
或0.15*极值间的距离
。patch_artist
:控制箱体的生成对象。类型为布尔值,默认值为False
。可选参数。当取值为False
时,箱体由Line2D
生成,否则,箱体由Patch
对象生成。labels
:每个数据集的标签,默认值为'None'
。类型为序列。可选参数。manage_ticks
:控制刻度和标签位置,取值为True
时,刻度和标签位置自动匹配箱线图的位置。类型为布尔值,默认值为True
。可选参数。autorange
:类型为布尔值,默认值为False
。可选参数。当取值为True
且数据分布满足上四分位数(75%)和下四分位数(25%)相等,whis
设置为(0, 100)
,即箱须端点为数据的最大值和最小值。meanline
:均值显示为线还是点。类型为布尔值,默认值为False
。可选参数。当取值为True
,且showmeans
、shownotches
参数均为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()
matplotlib之pyplot模块——绘制箱线图(盒须图)boxplot()(二)演示外观参数、返回值相关推荐
- matplotlib之pyplot模块——绘制箱线图(盒须图)boxplot()(一)基本参数
当前有效matplotlib版本为:3.4.1. 概述 boxplot()函数的作用是绘制箱线图(箱线图.盒须图.箱图). 箱形图(boxplot)又称盒须图或箱线图,是一种用来显示某一组数据分散情况 ...
- echart自定义图分享之自定百分比的(箱线图/盒须图)
echarts自定义图之自定百分比的(箱线图/盒须图): 分享一些自己在工作中遇到的非常规图 ` 创作原因:因客户需要指定样式的箱线图图(七分位,存在非固定分位:10%,90%,并且能查看每个分位的具 ...
- QT实现绘制箱须图(盒须图)
QT实现绘制箱须图 项目简介 项目技术 项目展示 主要源码片段解析 项目简介 显示了如何创建箱须图. 显示了如何从文件中读取非连续数据,对其进行排列并查找箱须图的中位数. 项目技术 qt5.12,Qt ...
- 【Tableau 图表大全21】之箱型图(盒须图)
文章目录 箱型图样式 构建箱形图 GIF演示 箱型图样式 箱形图,也称为箱须图,用于显示沿轴的分布.它通常分别在列和行上有一个维度和一个度量.尽管 Tableau 中的"显示我"功 ...
- echarts-箱线图(盒须图)
搞了一套和官网不同的option,也能渲染出效果来,虽然我不知道这个箱线图有啥意义啊哈哈哈~ 需求:填充背景色(中间的横线我是真的无能为力了,有搞出来的小伙伴欢迎留言) 剩下的一些自定义轴刻度显示.t ...
- 数据挖掘技术-绘制箱线图
绘制箱线图 前置步骤 准备数据guomin.npz,下载数据guomin.npz到Linux本地的/course/DataAnalyze/data目录 绘制箱线图 pyplot中绘制箱线图的函数为bo ...
- Tableau:如何添加参考线、趋势线、参考区间、分布区间、盒须图?
序言 Tableau中的"分析"栏提供了很多功能(如下图),这些功能可以向Tableau的工作表添加各种辅助线和辅助区间.通过对其进行归类,可以将这些辅助线.辅助区间分为:参考 ...
- Tableau图表 • 盒须图、抖动图
盒须图,又叫箱线图,是一种用作显示一组数据分散情况资料的统计图.盒须图能够比较直观的显示数据集的分散程度.异常值等信息. 盒须图 盒须图基础 盒须图包括六个统计量:最小值,下四分位数(Q1),中位数, ...
- 从明日方舟入手数据统计--盒须图
(封面源自必应,侵删)(多图预警) 由于此文的目的是数据统计学习而非游戏攻略且时间仓促,文中所用数据皆出自题主自己的明日方舟干员库,可能与实际数据有所出入.如需要权威数据请去明日方舟官方wiki 引子 ...
最新文章
- 嵌入式开发板设置无密码登录
- Unreal Engine 4 优化教程
- KDE与GNOME的起源与发展
- arcgis api 3.x for js 入门开发系列二不同地图服务展示(附源码下载)
- CVPR 2019审稿排名第一满分论文:让机器人也能「问路」的视觉语言导航新方法...
- jboss linux 性能,搭建jprofiler对jboss性能监控
- java手动线程池使用_Java手动配置线程池过程详解
- Debian Squeeze 安装
- 科普写作与专业写作的区别
- blender基本翻译+快捷键
- 哈工大计算机学院人才招聘,计算机学院教师赴澳大利亚进行学术访问及人才招聘...
- P61-指针-指针和数组
- 【渝粤教育】电大中专常见病药物治疗 (2)_1作业 题库
- java中以下为不合法字符常量_以下字符常量中不合法的是 ( )。 (1.0分)
- 每日一言 api 接口
- 工银亚洲见证开户详细过程和攻略
- 教你优雅绕开百度网盘限速机制
- 3D游戏模型教程系列:3D max基础命令(零基础教学)
- matlab中求分配系数的命令,汽车理论课后习Matlab程序.doc
- 机器学习与深度学习常识