用箱线图可视化摘要统计量
boxplot(
创建
x
)
x
中数据的箱线图。如果
x
是向量,
boxplot
绘制一个箱子。如果
x
是矩阵,
boxplot
为
x
的每列绘制一个箱子。
在每个箱子上,中心标记表示中位数,箱子的底边和顶边分别表示第 25 个和 75 个百分位数。须线会延伸到不是离群值的最远端数据点,离群值会使用
'+'
标记符号单独绘制。
boxplot(
使用坐标区图形对象
ax
,
___
)
ax
指定的坐标区和任何上述语法创建箱线图。
boxplot(
___
,
使用由一个或多个
Name,Value
)
Name,Value
对组参量指定的附加选项创建箱线图。例如,您可以指定箱子样式或顺序。
加载样本数据。
load carsmall
创建一个表示每加仑英里数 (
MPG
) 测量值的箱线图。添加标题并为坐标区加标签。
boxplot(MPG) xlabel('All Vehicles') ylabel('Miles per Gallon (MPG)') title('Miles per Gallon for All Vehicles')
箱线图显示,样本数据中所有车辆的每加仑英里数的中位数约为 24 英里。最小值约为 9,最大值约为 44。
加载样本数据。
load carsmall
根据样本数据创建每加仑英里数 (
MPG
) 测量值的箱线图,按车辆的原产国 (
Origin
) 分组。添加标题并为坐标区加标签。
boxplot(MPG,Origin) title('Miles per Gallon by Vehicle Origin') xlabel('Country of Origin') ylabel('Miles per Gallon (MPG)')
每个箱子直观地表示来自指定国家/地区的汽车的 MPG 数据。意大利的“箱子”显示为一条线,因为样本数据只包含该组的一个观测值。
生成两组样本数据。第一个样本
x1
包含从
mu = 5
和
sigma = 1
的正态分布生成的随机数。第二个样本
x2
包含从
mu = 6
和
sigma = 1
的正态分布生成的随机数。
rng default % For reproducibility x1 = normrnd(5,1,100,1); x2 = normrnd(6,1,100,1);
创建
x1
和
x2
的带缺口的箱线图。用对应的
mu
值对每个箱子加标签。
figure boxplot([x1,x2],'Notch','on','Labels',{'mu = 5','mu = 6'}) title('Compare Random Data from Different Distributions')
箱线图显示两个组的中位数之间的差值约为 1。由于箱线图中的缺口不重叠,可以有 95% 的置信度认为真实的中位数不同。
下图显示了相同数据的箱线图,其中最大须线长度指定为四分位差的 1.0 倍。须线以外的数据点使用
+
显示。
figure boxplot([x1,x2],'Notch','on','Labels',{'mu = 5','mu = 6'},'Whisker',1) title('Compare Random Data from Different Distributions')
须线越短,
boxplot
将越多的数据点显示为离群值。
创建从标准正态分布生成的一个 100×25 随机数矩阵,用作样本数据。
rng default % For reproducibility x = randn(100,25);
在同一图上为
x
中的数据创建两个箱线图。顶部图使用默认格式,底部图使用紧凑格式。
figure subplot(2,1,1) boxplot(x) subplot(2,1,2) boxplot(x,'PlotStyle','compact')
每个图显示相同的数据,但紧凑格式可以提高具有多个箱子的图的可读性。
通过使用分组变量为不同长度的数据向量创建箱线图。
随机生成三个不同长度的列向量:长度分别为
5
、
10
和
15
。将数据合并为一个长度为
30
的列向量。
rng('default') % For reproducibility x1 = rand(5,1); x2 = rand(10,1); x3 = rand(15,1); x = [x1; x2; x3];
创建一个分组变量,将同一值赋给
x
中来自于同一向量的行。例如,
g
的前五行具有相同的值
First
,因为
x
的前五行都来自同一个向量
x1
。
g1 = repmat({'First'},5,1); g2 = repmat({'Second'},10,1); g3 = repmat({'Third'},15,1); g = [g1; g2; g3];
创建箱线图。
boxplot(x,g)
x
—
输入数据
输入数据,指定为数值向量或数值矩阵。如果
x
是向量,
boxplot
绘制一个箱子。如果
x
是矩阵,
boxplot
为
x
的每列绘制一个箱子。
在每个箱子上,中心标记表示中位数,箱子的底边和顶边分别表示第 25 个和 75 个百分位数。须线会延伸到不是离群值的最远端数据点,离群值会使用
'+'
标记符号单独绘制。
数据类型:
single
|
double
g
—
分组变量
分组变量,指定为数值向量、字符数组、字符串数组、元胞数组或分类数组。您可以通过使用上述变量类型的元胞数组或矩阵在
g
中指定多个分组变量。如果指定多个分组变量,它们必须具有相同的长度。
如果
x
是向量,则对于
x
的每个元素,分组变量都包含一个对应的行。如果
x
是矩阵,则对于
x
的每个列,分组变量都包含一个对应的行。分组变量中包含缺失值 (
NaN
)、空字符向量、空值或
<missing>
字符串或
<undefined>
值的组将被忽略,并且不会计入其他参数考虑的组数中。
默认情况下,
boxplot
按在数据中最初出现的顺序对字符和字符串分组变量进行排序,按水平顺序对分类分组变量进行排序,并按数值顺序对数值分组变量进行排序。要控制组的顺序,请执行以下操作之一:
在
g
中使用分类变量,并指定其水平的顺序。
使用
'GroupOrder'
名称-值对组参量。
对您的数据进行预先排序。
数据类型:
single
|
double
|
char
|
string
|
cell
|
categorical
将可选的参量对组指定为
Name1=Value1,...,NameN=ValueN
,其中
Name
是参量名称,
Value
是对应的值。名称-值参量必须出现在其他参量后,但参量对组的顺序无关紧要。
在 R2021a 之前,使用逗号分隔每个名称和值,并用引号将
Name
引起来。
示例:
'Notch','on','Labels',{'mu = 5','mu = 6'}
创建带缺口的箱线图,并从左到右对两个箱子
mu = 5
和
mu = 6
加标签
BoxStyle
—
箱子样式
'outline'
|
'filled'
箱子样式,指定为下列各项之一。
名称 | 值 |
---|---|
'outline'
|
使用带虚须线的空心箱绘制箱子。如果
'PlotStyle'
是
'traditional'
,这是默认值。
|
'filled'
|
使用带实须线的窄实心箱绘制箱子。如果
'PlotStyle'
是
'compact'
,这是默认值。
|
示例:
'BoxStyle','filled'
Colors
—
箱子颜色
箱子颜色,指定为 RGB 三元组、字符向量或字符串标量。RGB 三元组是包含三个元素的行向量,其元素分别指定颜色中红、绿、蓝分量的强度。每个强度必须在 [0,1] 范围内。
下表列出了可用的颜色字符及其等效的 RGB 三元组值。
长名称 | 短名称 | RGB 三元组 |
---|---|---|
黄色 |
'y'
|
[1 1 0]
|
品红 |
'm'
|
[1 0 1]
|
青色 |
'c'
|
[0 1 1]
|
红色 |
'r'
|
[1 0 0]
|
绿色 |
'g'
|
[0 1 0]
|
蓝色 |
'b'
|
[0 0 1]
|
白色 |
'w'
|
[1 1 1]
|
黑色 |
'k'
|
[0 0 0]
|
您可以将多种颜色指定为字符向量或颜色名称的字符串标量(例如,
'rgbm'
)或包含 RGB 值的三列矩阵。序列会根据需要复制或截断,例如,
'rb'
会交替显示红色和蓝色的箱子。
如果未指定名称-值对组
'ColorGroup'
,则
boxplot
对所有箱子使用相同的颜色方案。如果您指定
'ColorGroup'
,则默认为修改后的
hsv
colormap
。
示例:
'Colors','rgbm'
MedianStyle
—
中位数样式
'line'
|
'target'
中位数样式,指定为下列各项之一。
名称 | 值 |
---|---|
'line'
|
画一条线来表示每个箱子中的中位数。当
'PlotStyle'
是
'traditional'
时,这是默认值。
|
'target'
|
绘制带黑心的圆来表示每个箱子的中位数。当
'PlotStyle'
是
'compact'
时,这是默认值。
|
示例:
'MedianStyle','target'
Notch
—
比较区间的标记
'off'
(默认) |
'on'
|
'marker'
比较区间的标记,指定为下列各项之一。
名称 | 值 |
---|---|
'off'
|
在箱子显示中省略比较区间。 |
'on'
|
如果
'PlotStyle'
是
'traditional'
,则使用缺口绘制比较区间。如果
'PlotStyle'
是
'compact'
,则使用三角形标记绘制比较区间。
|
'marker'
|
使用三角形标记绘制比较区间。 |
如果两个中位数的区间不重叠,则这两个中位数在 5% 显著性水平上有显著差异。
boxplot
使用缺口的极值或三角形标记的中心表示区间端点。缺口极值对应于
q
2
– 1.57(q
3
– q
1
)/sqrt(n)
和
q
2
+ 1.57(q
3
– q
1
)/sqrt(n)
,其中
q
2
是中位数(第 50 百分位数),
q
1
和
q
3
分别是第 25 个和第 75 个百分位数,n 是没有任何
NaN
值的观测值的数目。如果样本量很小,缺口可能会超出箱子的末端。
有关经过标注的带缺口的箱线图示例,请参阅 箱线图 。
示例:
'Notch','on'
OutlierSize
—
离群值的标记大小
离群值的标记大小,指定为一个正数值。指定的值表示以磅为单位的标记大小。
如果
'PlotStyle'
是
'traditional'
,则
OutlierSize
的默认值为 6。如果
'PlotStyle'
是
'compact'
,则
OutlierSize
的默认值为 4。
示例:
'OutlierSize',8
数据类型:
single
|
double
PlotStyle
—
绘图样式
'traditional'
(默认) |
'compact'
绘图样式,指定为下列各项之一。
名称 | 值 |
---|---|
'traditional'
|
使用传统箱子样式绘制箱子。 |
'compact'
|
使用较小的箱子样式绘制箱子,该箱子样式适用于具有许多组的绘图。此样式会更改其他一些参数的默认值。 |
示例:
'PlotStyle','compact'
Symbol
—
离群值的标记和颜色
离群值的标记和颜色,指定为包含标记和颜色的符号的字符向量或字符串标量。符号可以按任意顺序显示。如果省略标记符号,则离群值不可见。如果省略颜色符号,则离群值将以与箱子相同的颜色出现。
如果
'PlotStyle'
是
'traditional'
,则默认值为
'+r'
,它使用红色加号
'+'
标记符号绘制每个离群值。
如果
'PlotStyle'
是
'compact'
,则默认值为
'o'
,它使用与对应箱子颜色相同的圆形
'o'
标记符号绘制每个离群值。
标记 | 描述 | 生成的标记 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
"o"
|
圆形 |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
"+"
|
加号 |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
"*"
|
星号 |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
"."
|
点 |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
"x"
|
叉号 |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
"_"
|
水平线 |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
"|"
|
垂直线 |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
"square"
|
正方形 |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
"diamond"
|
菱形 |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
"^"
|
上三角 |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
"v"
|
下三角 |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
">"
|
右三角 |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
"<"
|
左三角 |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
"pentagram"
|
五角形 |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
"hexagram"
|
六角形 |
示例:
指定
|
名称 | 值 |
---|---|
'data'
|
首个因子值显示在绘图原点旁边。 |
'list'
|
因子在 x 轴上从左到右显示,在 y 轴上从上到下显示。 |
'auto'
|
如果分组变量是数值,则
boxplot
使用
'data'
。如果分组变量是字符数组、字符串数组、元胞数组或分类数组,则
boxplot
使用
'list'
。
|
示例:
'FactorDirection','auto'
FullFactors
—
绘制所有组因子
'off'
(默认) |
'on'
绘制所有组因子,指定为
'off'
或
'on'
。如果指定
'off'
,则
boxplot
为每个唯一的分组变量行绘制一个箱子。如果指定
'on'
,则
boxplot
为分组变量值的每个可能组合绘制一个箱子,包括数据中未出现的组合。
示例:
'FullFactors','on'
FactorGap
—
不同分组因子之间的距离
[]
|
正数值
|
正数值向量
|
'auto'
不同分组因子之间的距离,指定为正数值、正数值向量或
'auto'
。如果指定向量,则向量长度必须小于或等于分组变量的数目。
'FactorGap'
表示一个分组变量的不同因子之间的间隙,以绘图宽度的百分比表示。例如,如果您指定
[3,1]
,则第一个分组变量具有不同值的组之间的间隙是绘图宽度的 3%;第一个分组变量的值相同而第二个分组变量具有不同值的组之间的间隙是绘图宽度的 1%。
如果您指定
'auto'
,则
boxplot
会自动选择间隙距离。值
[]
表示不同因子之间的间隙大小没有变化。
如果
'PlotStyle'
是
'traditional'
,则
FactorGap
的默认值为
[]
。如果
'PlotStyle'
是
'compact'
,则默认值为
'auto'
。
示例:
'FactorGap',[3,1]
数据类型:
single
|
double
|
char
|
string
FactorSeparator
—
分组因子之间的分隔
[]
|
正整数
|
正整数向量
|
'auto'
分组因子之间的分隔,指定为正整数或正整数向量或
'auto'
。如果指定向量,则向量的长度应小于或等于分组变量的数目。整数值必须在 [1,G] 范围内,其中 G 是分组变量的数目。
'FactorSeparator'
指定哪些因子的值应该由网格线分隔。例如,当第一个或第二个分组变量更改值时,
[1,2]
会添加分隔线。
如果
'PlotStyle'
是
'traditional'
,则
FactorSeparator
的默认值为
[]
。如果
'PlotStyle'
是
'compact'
,则默认值为
'auto'
。
示例:
'FactorSeparator',[1,2]
数据类型:
single
|
double
|
char
|
string
GroupOrder
—
绘制组的顺序
[]
(默认) |
字符串数组
|
元胞数组
绘制组的顺序,指定为包含分组变量名称的字符串数组或元胞数组。如果有多个分组变量,请用逗号分隔值。您也可以使用分类数组作为分组变量来控制箱子的顺序。默认值
[]
不会对这些箱子重新排序。
数据类型:
string
|
cell
DataLim
—
极值数据范围
[-Inf,Inf]
(默认) |
二元素数值向量
极值数据范围,指定为分别包含下限和上限的二元素数值向量。
'ExtremeMode'
使用为
'DataLim'
指定的值来确定哪些数据点为极值。
数据类型:
single
|
double
ExtremeMode
—
极值数据的处理方法
'clip'
(默认) |
'compress'
极值数据的处理方法,指定为下列各项之一。
名称 | 值 |
---|---|
'clip'
|
如果有任何数据值超出
'DataLim'
指定的范围,则
boxplot
会在图中的
DataLim
处显示这些值。
|
'compress'
|
如果有任何数据值超出
'DataLim'
指定的范围,则
boxplot
会在
DataLim
以外的紧邻区域均匀显示这些值,并保留点的相对顺序。
|
如果有任何数据点超出
'DataLim'
指定的范围,则范围用虚线标记。如果有任何数据点被压缩,则会使用两条灰线标记压缩区域。
–Inf
或
Inf
处的值可以被裁剪或压缩,但
NaN
值不会出现在绘图上。箱子缺口基于样本规模绘制,如果中位数在指定范围内,箱子缺口可能会延伸出界外。如果中位数超出指定范围,则不会绘制箱子缺口。
示例:
'ExtremeMode','compress'
Jitter
—
最大离群值位移距离
最大离群值位移距离,指定为数值。
Jitter
沿因子轴将重复离群值移动随机均匀量的最大距离,以使它们清楚可见。如果您指定
'Jitter'
等于 1,则抖动区域为最近相邻组之间的整个区域。
如果
'PlotStyle'
是
'traditional'
,则
Jitter
的默认值为 0。如果
'PlotStyle'
是
'compact'
,则默认值为 0.5。
示例:
'Jitter',1
数据类型:
single
|
double
Whisker
—
用于计算最大须线长度的乘数
最大须线长度的乘数,指定为正数值。最大须线长度是
Whisker
和四分位差的乘积。
boxplot
将大于
q
3
+ w × (q
3
– q
1
)
或小于
q
1
– w × (q
3
– q
1
)
的点绘制为离群值,其中 w 是乘数
Whisker
,而 q
1
和 q
3
分别是样本数据的第 25 个和第 75 个百分位数。
如果数据呈正态分布,
'Whisker'
的默认值大约对应于
+/–2.7σ
和 99.3% 的覆盖率。绘制的须线会延伸到
邻近值
,该值是非离群值的最远端数据值。
将
'Whisker'
指定为 0,表示不带须线,q
1
和 q
3
之外的所有点都将视为离群值。
有关经过标注的带须线的箱线图示例,请参阅 箱线图 。
示例:
'Whisker',0
数据类型:
single
|
double
Labels
—
箱子标签
箱子标签,指定为包含箱子标签名称的字符数组、字符串数组、元胞数组或数值向量。为每个
x
值指定一个标签,或为每个组指定一个标签。要指定多个标签变量,请使用包含任何接受的数据类型的数值矩阵或元胞数组。
要从绘图中删除标签,请使用以下命令:
set(gca,'XTickLabel',{' '})
。
数据类型:
char
|
string
|
cell
|
single
|
double
LabelOrientation
—
标签方向
'inline'
|
'horizontal'
标签方向,指定为下列各项之一。
名称 | 值 |
---|---|
'inline'
|
将箱子标签旋转至垂直状态。当
'PlotStyle'
是
'compact'
时,这是默认值。
|
'horizontal'
|
保持箱子标签处于水平状态。当
'PlotStyle'
是
'traditional'
时,这是默认值。
|
如果标签位于 y 轴上,则两种设置都保持标签处于水平状态。
示例:
'LabelOrientation','inline'
LabelVerbosity
—
要在绘图上显示的标签
'all'
|
'minor'
|
'majorminor'
要在绘图上显示的标签,指定为下列各项之一。
名称 | 值 |
---|---|
'all'
|
为分组变量的每个值显示一个标签。当
'PlotStyle'
是
'traditional'
时,这是默认值。
|
'minor'
|
对于任何分组变量,仅当箱子
|
'majorminor'
|
对于任何分组变量
|
示例:
'LabelVerbosity','minor'
Orientation
—
绘图方向
'vertical'
(默认) |
'horizontal'
绘图方向,指定为下列各项之一。
名称 | 值 |
---|---|
'vertical'
|
在 y 轴上绘制
x
。
|
'horizontal'
|
在 x 轴上绘制
x
。
|
示例:
'Orientation','horizontal'
Positions
—
箱子位置
箱子位置,指定为数值向量,对于每个组或
x
值,该数值向量都包含一个对应的条目。默认值为 1:NumGroups,其中 NumGroups 是组数。
数据类型:
single
|
double
箱线图提供样本数据的摘要统计量的可视化,并包含以下特性:
每个箱子的底部和顶部分别表示样本的第 25 个和第 75 个百分位数。每个箱子的底部和顶部之间的距离表示四分位差。
每个箱子中间的红线表示样本中位数。如果中位数不在箱子的中心,则绘图显示样本偏度。
须线是自每个箱子的顶部向上延伸和底部向下延伸的线条。须线从四分位差的端点延伸到须线长度内最远的观测值( 相邻值 )。
超出须线长度的观测值标记为离群值。默认情况下,离群值是距离箱子底部或顶部超过 1.5 倍四分位差的值。不过,您可以通过使用额外的输入参量来调整此值。离群值显示为红色 + 号。
缺口显示样本间中位数的变异性。计算缺口的宽度,使得缺口不重叠的框在 5% 显著性水平上具有不同中位数。显著性水平基于正态分布假设,但对于其他分布,中位数比较也可合理地认为是稳健的。比较箱线图中位数就像目测假设检验,类似于用于均值的 t 检验。在某些情况下,缺口可能会延伸到箱子外部。
boxplot
创建数据的可视化表示,但不返回数值。要计算样本数据的相关摘要统计量,请使用以下函数:
您可以在图窗窗口中使用
数据游标
查看数据值和组名称。游标显示受
datalim
参数影响的任何点的原始值。您可以使用
gname
函数对离群值所属的组加标签。
要修改箱线图组件的图形属性,请使用
findobj
和
Tag
属性来查找组件的句柄。箱线图组件的
Tag
值取决于参数设置,如下表所示。
参数设置 | 标记值 |
---|---|
所有设置 |
|
当
'PlotStyle'
是
'traditional'
时
|
|
当
'PlotStyle'
是
'compact'
时
|
|
当
'Notch'
是
'marker'
时
|
|
您还可以使用
boxchart
函数创建
BoxChart
对象。虽然
boxchart
并未涵盖
boxplot
的所有功能,但它有一些优势。与
boxplot
不同,
boxchart
函数:
支持沿组轴的分类标尺
提供图例选项
适合与
hold on
命令结合使用
具有改进的外观设计,帮助您更轻松地查看缺口
要控制对象的外观和行为,请更改 BoxChart 属性 。
[1] McGill, R., J. W. Tukey, and W. A. Larsen. “Variations of Boxplots.” The American Statistician. Vol. 32, No. 1, 1978, pp. 12–16.
[2] Velleman, P.F., and D.C. Hoaglin. Applications, Basics, and Computing of Exploratory Data Analysis. Pacific Grove, CA: Duxbury Press, 1981.
[3] Nelson, L. S. “Evaluating Overlapping Confidence Intervals.” Journal of Quality Technology. Vol. 21, 1989, pp. 140–141.
[4] Langford, E. “Quartiles in Elementary Statistics”, Journal of Statistics Education. Vol. 14, No. 3, 2006.
在 R2006a 之前推出
anova1
|
kruskalwallis
|
multcompare
|
min
|
max
|
median
|
quantile
|
iqr
|
grpstats