matplotlib之pyplot模块 您所在的位置:网站首页 箱线图的异常值怎么算 matplotlib之pyplot模块

matplotlib之pyplot模块

2024-04-10 11:23| 来源: 网络整理| 查看: 265

当前有效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 np plt.rcParams['font.family'] = 'simhei' plt.rcParams['axes.unicode_minus'] = False data = 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 np plt.rcParams['font.family'] = 'simhei' plt.rcParams['axes.unicode_minus'] = False data = 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 np plt.rcParams['font.family'] = 'simhei' plt.rcParams['axes.unicode_minus'] = False data = 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 np plt.rcParams['font.family'] = 'simhei' plt.rcParams['axes.unicode_minus'] = False data = 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 np plt.rcParams['font.family'] = 'simhei' plt.rcParams['axes.unicode_minus'] = False data = 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 np plt.rcParams['font.family'] = 'simhei' plt.rcParams['axes.unicode_minus'] = False data = 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 np plt.rcParams['font.family'] = 'simhei' plt.rcParams['axes.unicode_minus'] = False data = 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 np plt.rcParams['font.family'] = 'simhei' plt.rcParams['axes.unicode_minus'] = False data = 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 np plt.rcParams['font.family'] = 'simhei' plt.rcParams['axes.unicode_minus'] = False data = 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 np plt.rcParams['font.family'] = 'simhei' plt.rcParams['axes.unicode_minus'] = False data = 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 np plt.rcParams['font.family'] = 'simhei' plt.rcParams['axes.unicode_minus'] = False data = 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': [], 'caps': [, ], 'fliers': [], 'means': [], 'medians': [], 'whiskers': [, ]} # 显示均值时的返回值 {'boxes': [], 'caps': [, ], 'fliers': [], 'means': [], 'medians': [], 'whiskers': [, ]} # 箱体由Patch生成时的返回值 {'boxes': [], 'caps': [, ], 'fliers': [], 'means': [], 'medians': [], 'whiskers': [, ]} import matplotlib.pyplot as plt import numpy as np from pprint import pprint plt.rcParams['font.family'] = 'simhei' plt.rcParams['axes.unicode_minus'] = False data = 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()


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有