python绘制箱线图boxplot()的教程详解
作者:小朱小朱绝不服输
最近在处理数据时,需要使用python绘制箱线图。
1. 箱线图
箱线图(Box-plot)又称为盒式图或箱型图,是一种用来显示一组数据分散情况的统计图,它能显示一组数据的上界、下界、中位数、上下四分位数以及异常值等。
- 四分位数:就是把一组数据按照从小到大的顺序进行排列,然后分成四等份,处于三个分割点位置的数字就是四分位数;
- 第一四分位数(q1):又称“较小四分位数”或“下四分位数”,等于该样本中所有数值由小到大排列后第25%的数字,q1的位置 = 1+(n-1)x 0.25;
- 第二四分位数(q2):又称“中位数”,等于该样本中所有数值由小到大排列后第50%的数字,q2的位置= 1+(n-1)x 0.5;
- 第三四分位数(q3),又称“较大四分位数”或“上四分位数”,等于该样本中所有数值由小到大排列后第75%的数字。q3的位置= 1+(n-1)x 0.75;
- 四分位间距(InterQuartile Range,IQR):第三四分位数与第一四分位数的差距(q3数据- q1数据);
- Whiske上限(大于该值即为异常值):q3数 + 1.5*IQR,(1.5表示超过的比例,是一个系数,可根据实际情况调整);
- Whisker下限(小于该值即为异常值):q1数 - 1.5*IQR。
2. Matplotlib中绘制箱线图的方法:boxplot
boxplot函数说明:
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:是否以凹口的形式展现箱线图,默认非凹口;
sym:指定异常点的形状,默认为蓝色的+号显示;
vert:是否需要将箱线图垂直摆放,默认垂直摆放;
whis:指定上下须与上下四分位的距离,默认为1.5倍的四分位差;
positions:指定箱线图的位置,默认为range(1, N+1),N为箱线图的数量;
widths:指定箱线图的宽度,默认为0.5;
patch_artist:是否填充箱体的颜色,默认为False;
meanline:是否用线的形式表示均值,默认用点来表示;
showmeans:是否显示均值,默认不显示;
showcaps:是否显示箱线图顶端和末端的两条线,默认显示;
showbox:是否显示箱线图的箱体,默认显示;
showfliers:是否显示异常值,默认显示;
boxprops:设置箱体的属性,如边框色,填充色等;
labels:为箱线图添加标签,类似于图例的作用;
flierprops:设置异常值的属性,如异常点的形状、大小、填充色等;
medianprops:设置中位数的属性,如线的类型、粗细等;
meanprops:设置均值的属性,如点的大小、颜色等;
capprops:设置箱线图顶端和末端线条的属性,如颜色、粗细等;
whiskerprops:设置须的属性,如颜色、粗细、线的类型等;
manage_ticks:是否自适应标签位置,默认为True;
autorange:是否自动调整范围,默认为False;
3. 绘制单个箱线图
labels = 'A' data = [0.8685, 0.6671, 0.7971, 0.5774] plt.grid(True) # 显示网格 plt.boxplot(data, medianprops={'color': 'red', 'linewidth': '1.5'}, meanline=True, showmeans=True, meanprops={'color': 'blue', 'ls': '--', 'linewidth': '1.5'}, flierprops={"marker": "o", "markerfacecolor": "red", "markersize": 10}, labels=labels) plt.yticks(np.arange(0.4, 0.91, 0.1)) plt.show()
4.绘制多个箱线图
labels = 'A', 'B', 'C', 'D', 'E', 'F' A = [0.4978, 0.5764, 0.5073, 0.5609] B = [0.5996, 0.65, 0.6251, 0.6473] C = [0.6015, 0.687, 0.6237, 0.6761] D = [0.5918, 0.6999, 0.6343, 0.6947] E = [0.577, 0.6932, 0.6593, 0.7036] F = [0.5637, 0.7161, 0.6683, 0.697] plt.grid(True) # 显示网格 plt.boxplot([A, B, C, D, E, F], medianprops={'color': 'red', 'linewidth': '1.5'}, meanline=True, showmeans=True, meanprops={'color': 'blue', 'ls': '--', 'linewidth': '1.5'}, flierprops={"marker": "o", "markerfacecolor": "red", "markersize": 10}, labels=labels) plt.yticks(np.arange(0.4, 0.81, 0.1)) plt.show()
以上就是python绘制箱线图boxplot()的教程详解的详细内容,更多关于python绘制boxplot()的资料请关注脚本之家其它相关文章!