箱线图的应用场景
箱线图(Box plot),又叫箱形图,由于其形状类似于箱子而得名(如图1所示)。箱线图主要用于反映原始数据的分布特征,包括中位数、最大值、最小值等,也可以用于直观地对比多组数据的分布特征。常见箱线图以点、横线的形式显示一组数据的上界和下界,再以箱子的上下边界表示这组数据的两个四分位数(Q1、Q3),最后以箱子内线段表示这组数据的中位数。
一般类型的箱线图在Matlab中有专门的函数用于实现,即boxplot();但是在实际的科研绘图中,希望展示数据的其他特征,如标准差,均值等,此时需要个性化的箱线图绘制函数。恰巧有一个notBoxPlot()函数可以使用。本文将对上述两种箱线图函数进行介绍,并转载后者的代码,该代码由Rob Campbell(2016.08)提供。
绘制数据
本文设置一组存在数值空缺的矩阵A,每组数值的个数不统一,如图2所示:
Matlab自带的箱线图函数
常用语法一:boxplot(x);
当x是一维向量时,boxplot()只绘制一个箱子;
当x是二维向量时,boxplot()以列为分组,分别绘制列数个箱子。
boxplot(A’)结果如图3:
boxplot(A(1,: ))结果如图4:
更优秀的箱线图函数
**notBoxPlot()**绘制的箱线图,不仅表示出各组数据点的分布,而且箱子的红色实线为均值,虚线表示中位数,蓝色箱子的上下边界分别为均值+标准差、均值-标准差,红色箱子为95% 的置信区间。
参数介绍:
-
y为需要绘制的数据
-
x为可选,表示分组标签
-
参数“jitter”表示箱子的宽度尺寸,默认为0.3,取1时表示原来的大小,个人常用0.7
-
参数"style"表示箱子的类型,默认为盒子,也可以设置为线段
-
参数"markMedian"表示是否高亮中位数,默认为否,选是时,中位数以虚线显示
notBoxPlot(A’,‘jitter’,0.7)的结果如图5:
代码分享
函数notBoxPlot()由Rob Campbell于2016年8月完成,代码文件中含有样例。
链接:https://pan.baidu.com/s/1Q4S-GD9SMfIy_xYfN76LfQ
提取码:svj2