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

当前有效 matplotlib版本为: 3.4.1

概述

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

箱形图(boxplot)又称盒须图或箱线图,是一种用来显示某一组数据分散情况的统计图,因形状如箱子而得名。箱形图是由美国的统计学家约翰·图基(JohnTukey)在1977年发明的。箱形图主要用于反映原始数据的分布特征,还可以实现多组数据分布特征的比较。它是由六种数值组成:异常值(outlier/flier)、最小值(min)、下四分位数(Q1,即第25%分位数)、中位数(median,即第50%分位数)、上四分位数(Q3,即第75%分位数)、最大值(max)。

函数的签名为 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:表示均值的点或线。

案例:演示 notch 参数显示V型凹槽

matplotlib之pyplot模块——绘制箱线图(盒须图)boxplot()(一)基本参数
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(211)
plt.title("默认样式")
plt.boxplot(data)
plt.subplot(212)
plt.title("设置V型凹槽")
plt.boxplot(data, notch=True)

plt.show()

案例:演示 sym 参数指定离群点样式

matplotlib之pyplot模块——绘制箱线图(盒须图)boxplot()(一)基本参数
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, sym='')
plt.subplot(223)
plt.title("设置离散点样式")
plt.boxplot(data, sym='b+')
plt.subplot(224)
plt.title("设置离散点样式")
plt.boxplot(data, sym='r^')

plt.show()

案例:演示 vert 参数指定箱线图方向

matplotlib之pyplot模块——绘制箱线图(盒须图)boxplot()(一)基本参数
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, vert=False)

plt.show()

案例:演示 whis 参数指定箱须位置

matplotlib之pyplot模块——绘制箱线图(盒须图)boxplot()(一)基本参数
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, whis=(5, 95))

plt.show()

案例:演示 usermedians 参数指定中位数值

matplotlib之pyplot模块——绘制箱线图(盒须图)boxplot()(一)基本参数
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, usermedians=[0.5])

plt.show()

案例:演示 conf_intervals 参数指定置信区间

matplotlib之pyplot模块——绘制箱线图(盒须图)boxplot()(一)基本参数
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, notch=True, conf_intervals=[(-0.3,0.4)])

plt.show()

案例:演示 positions 参数指定箱线图的位置

matplotlib之pyplot模块——绘制箱线图(盒须图)boxplot()(一)基本参数
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, positions=[3])

plt.show()

案例:演示 widths 参数指定箱体的宽度

matplotlib之pyplot模块——绘制箱线图(盒须图)boxplot()(一)基本参数
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, widths=0.5)

plt.show()

Original: https://blog.csdn.net/mighty13/article/details/117392098
Author: mighty13
Title: matplotlib之pyplot模块——绘制箱线图(盒须图)boxplot()(一)基本参数

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/766047/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球