📜  Matplotlib-箱形图(1)

📅  最后修改于: 2023-12-03 15:32:51.880000             🧑  作者: Mango

Matplotlib-箱形图

Matplotlib是一个经典的数据可视化库,箱形图是展示数据分布情况的一种常用方法,Matplotlib也提供了简便的绘制箱形图的函数。

基本函数

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_xticks=True, autorange=False, zorder=None, data=None)

  • x:数据集,可以是列表、元组、numpy数组等;
  • notch:是否将箱体两侧缺口,False表示不缺口,默认为None
  • sym:指定离群点的点样式,默认为'+'
  • vert:是否垂直绘制箱体,默认为True
  • whis:箱体长度,表示( Q3 - Q1 ) * whis,默认为1.5;
  • positions:指定箱体的中心位置;
  • widths:指定箱体的宽度,默认为0.5;
  • patch_artist:是否对箱体填充颜色,默认为False
  • bootstrap:可选项,用于计算置信区间;
  • usermedians:可选项,手动指定中位数的位置;
  • conf_intervals:可选项,手动指定置信区间;
  • meanline:是否绘制均值线,默认为False
  • showmeans :是否标注均值,默认为False
  • showcaps :是否标注边缘值,默认为True
  • showbox :是否标注箱体值,默认为True
  • showfliers :是否标注离群点,默认为True
  • boxprops:用于设置箱体的属性,如颜色、线宽等;
  • labels:用于为箱体图添加标签;
  • flierprops:用于设置离群点的属性;
  • medianprops:用于设置中位数的属性;
  • meanprops:用于设置均值线的属性;
  • capprops:用于设置边缘值的属性;
  • whiskerprops:用于设置箱体边缘线的属性。
示例
import matplotlib.pyplot as plt
import numpy as np

# 生成数据
np.random.seed(0)
data_1 = np.random.normal(100, 10, 200)
data_2 = np.random.normal(90, 20, 200)
data_3 = np.random.normal(80, 30, 200)
data_4 = np.random.normal(70, 40, 200)
data = [data_1, data_2, data_3, data_4]

# 绘制箱形图
labels = ['data_1', 'data_2', 'data_3', 'data_4']
plt.boxplot(data, labels=labels, sym='o', patch_artist=True, notch=True, 
            vert=True, whis=1.5, showmeans=True, meanline=True, showfliers=True)
plt.show()

箱形图示例

在这个例子中,我们生成了4组正态分布的数据集,并调用plt.boxplot()函数绘制了它们的箱形图。具体地,我们在绘制过程中设置了如下参数:

  • labels:用于为每个箱体命名;
  • sym='o':用于指定箱体外部的自定义样式;
  • patch_artist=True:对于箱体是否填充颜色;
  • notch=True:是否在箱体两侧加入缺口;
  • vert=True:表示绘制垂直箱形图,如果为False则绘制水平箱形图;
  • whis=1.5:表示箱体长度为( Q3 - Q1 ) * 1.5,即箱体两侧距离为1.5倍四分位极差;
  • showmeans=True:表示标注每个箱体的均值点;
  • meanline=True:表示在箱体中央绘制一条均值线;
  • showfliers=True:表示标出离群点。