箱线图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)

绘制箱线图,查看数据分布情况和判断数据是否分布对称

参数

x:输入数据,数组或者向量序列

notch:bool,默认是False,如果是True,那么就会生成带有缺口的箱线图,反映中位数的置信区间

sym:flier 点,如果是空字符串的话,那么不会显示flier,如果是None,那么默认flier是‘b+’,如果想显示更多flier的格式那么要使用flierprops关键字参数,flier:离群点

vert:bool 默认True;如果是False,那么箱线图是水平,True就是垂直

whis:float,String,sequence,默认是1.5;确定正常数据的范围(如果是序列),string=‘range’那么强迫图覆盖最大值到最小;如果是float的话,那么边界点是Q3+whis*(Q3-Q1)

bootstrap:int

manage_xticks:bool 默认是True;当是True的话,自动调整标签和x轴范围

meanline:bool 默认False,如果是True,把均值也画出来

例子:

import matplotlib.pyplot as plt
import numpy as np
# Random test data
np.random.seed(123)
all_data = [np.random.normal(0, std, 100) for std in range(1, 4)]
fig, axes = plt.subplots(nrows=1, ncols=2, figsize=(9, 4))
# rectangular box plot
bplot1 = axes[0].boxplot(all_data,
vert=True, # vertical box aligmnent
patch_artist=True) # fill with color
# notch shape box plot
bplot2 = axes[1].boxplot(all_data,
notch=True, # notch shape
vert=True, # vertical box aligmnent
patch_artist=True) # fill with color
# fill with colors
colors = ['pink', 'lightblue', 'lightgreen']
for bplot in (bplot1, bplot2):
for patch, color in zip(bplot['boxes'], colors):
patch.set_facecolor(color)
# adding horizontal grid lines
for ax in axes:
ax.yaxis.grid(True)
ax.set_xlabel('xlabel')
ax.set_ylabel('ylabel')
# add x-tick labels
plt.setp(axes, xticks=[y+1 for y in range(len(all_data))],
xticklabels=['x1', 'x2', 'x3', 'x4'])
plt.show()