📅  最后修改于: 2023-12-03 15:32:51.880000             🧑  作者: Mango
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
:表示标出离群点。