boxchart
箱线图
语法
说明
向量和矩阵数据
boxchart( 根据 xgroupdata,ydata)xgroupdata 中的唯一值对向量 ydata 中的数据进行分组,并将每组数据绘制为一个单独的箱线图。xgroupdata 确定每个箱线图在 x 轴上的位置。ydata 必须为向量,xgroupdata 必须与 ydata 长度相同。
boxchart(___,'GroupByColor', 使用颜色来区分箱线图。软件根据 cgroupdata)xgroupdata(如果指定)和 cgroupdata 中的唯一值组合将向量 ydata 中的数据分组,并将每组数据绘制为一个单独的箱线图。然后,向量 cgroupdata 决定每个箱线图的颜色。ydata 必须为向量,cgroupdata 必须与 ydata 具有相同的长度。请在上述语法中的任何输入参量组合后指定 'GroupByColor' 名称-值对组参量。
表数据
其他选项
boxchart(___, 使用一个或多个名称-值对组参量指定其他图选项。例如,您可以通过指定 Name,Value)'Notch','on' 使用缺口来比较样本中位数。在所有其他输入参量之后指定名称-值对组参量。有关属性列表,请参阅 BoxChart 属性。
返回 b = boxchart(___)BoxChart 对象。如果未指定 cgroupdata,则 b 包含一个对象。如果您指定它,则 b 包含一个由对象组成的向量,其中每个对象对应于 cgroupdata 中的一个唯一值。创建箱线图后,使用 b 设置箱线图的属性。有关属性列表,请参阅 BoxChart 属性。
示例
基于年龄向量创建一个箱线图。用箱线图来可视化年龄分布。
加载 patients 数据集。Age 变量包含 100 个患者的年龄信息。创建一个箱线图来可视化年龄分布。
load patients boxchart(Age) ylabel('Age (years)')

患者的中位数年龄为 39 岁,如箱内的线条所示。32 岁和 44 岁的下四分位数和上四分位数分别显示为箱的底部和顶部边缘。须线(即在框下方和上方延伸的线条)的端点对应于最年轻和最年长的患者。年龄最小的患者是 25 岁,最大的是 50 岁。数据集不包含由小圆圈表示的离群值。
您可以使用数据提示来获取数据统计的汇总。将鼠标悬停在箱线图上可查看数据提示。
使用箱线图来比较沿幻方的列和行的值的分布。
创建一个包含 10 行和 10 列的幻方。
Y = magic(10)
Y = 10×10
92 99 1 8 15 67 74 51 58 40
98 80 7 14 16 73 55 57 64 41
4 81 88 20 22 54 56 63 70 47
85 87 19 21 3 60 62 69 71 28
86 93 25 2 9 61 68 75 52 34
17 24 76 83 90 42 49 26 33 65
23 5 82 89 91 48 30 32 39 66
79 6 13 95 97 29 31 38 45 72
10 12 94 96 78 35 37 44 46 53
11 18 100 77 84 36 43 50 27 59
为幻方的每列创建一个箱线图。每列都有一个相似的中位数值(在 50 附近)。但是,Y 的前五列的四分位差大于 Y 的后五列。四分位差是上四分位数(箱的上边缘)和下四分位数(箱的下边缘)之间的距离。
boxchart(Y) xlabel('Column') ylabel('Value')

为幻方的每行创建一个箱线图。每行都有相似的四分位差,但各行的中位数值不同。
boxchart(Y') xlabel('Row') ylabel('Value')

自 R2025a 起
将 tsunami 数据集加载到一个表中。为 Longitude 和 Latitude 变量创建箱线图,并使用变量名称标记各组。
tbl = readtable("tsunamis.xlsx"); boxchart(tbl,["Longitude","Latitude"]) xticklabels(["Longitude","Latitude"])

自 R2025a 起
根据地震发生的月份绘制地震的幅值。使用地震幅值向量和分组变量来表示每次地震的月份。对于每组数据,创建一个箱线图,并将其放置在 x 轴上的指定位置。
将一组海啸数据以表形式读入工作区中。该数据集包括关于地震以及海啸的其他原因的信息。显示表的前八行,内容包括月份列、原因列和地震幅值列。
tsunamis = readtable('tsunamis.xlsx'); tsunamis(1:8,["Month","Cause","EarthquakeMagnitude"])
ans=8×3 table
Month Cause EarthquakeMagnitude
_____ __________________ ___________________
10 {'Earthquake' } 7.6
8 {'Earthquake' } 6.9
12 {'Volcano' } NaN
3 {'Earthquake' } 8.1
3 {'Earthquake' } 4.5
5 {'Meteorological'} NaN
11 {'Earthquake' } 9
3 {'Earthquake' } 5.8
创建表 earthquakes,其中包含由地震引起的海啸的数据。
unique(tsunamis.Cause)
ans = 8×1 cell
{0×0 char }
{'Earthquake' }
{'Earthquake and Landslide'}
{'Landslide' }
{'Meteorological' }
{'Unknown Cause' }
{'Volcano' }
{'Volcano and Landslide' }
idx = contains(tsunamis.Cause,'Earthquake');
earthquakes = tsunamis(idx,:);根据对应海啸发生的月份对地震幅值进行分组。对于每个月份,显示一个单独的箱线图。例如,boxchart 使用第四个、第五个和第八个地震幅值及其他幅值来创建第三个箱线图,该箱线图对应于第三个月。
boxchart(earthquakes,"Month","EarthquakeMagnitude") xlabel('Month') ylabel('Earthquake Magnitude')

请注意,由于月份值是数值,因此 x 轴标尺也是数值。
如果想采用更具描述性的月份名称,请将 earthquakes.Month 变量转换为 categorical 变量。
monthOrder = ["Jan","Feb","Mar","Apr","May","Jun","Jul", ... "Aug","Sep","Oct","Nov","Dec"]; earthquakes.Months = categorical(earthquakes.Month,1:12,monthOrder);
像以前一样创建箱线图。x 轴标尺现在是分类值,Months 中的类别顺序决定箱线图的顺序。
boxchart(earthquakes,"Months","EarthquakeMagnitude") xlabel('Month') ylabel('Earthquake Magnitude')

根据年龄对医疗患者进行分组,并为每个年龄组创建一个关于舒张压值的箱线图。
加载 patients 数据集。Age 和 Diastolic 变量包含 100 个患者的年龄和舒张压水平值。
load patients将患者数据分为五个年龄 bin。找出最小和最大年龄,然后将它们之间的范围划分为以五年为一档的 bin。通过使用 discretize 函数对 Age 变量中的值分 bin。使用 bins 中的 bin 名称。生成的 groupAge 变量是 categorical 变量。
min(Age)
ans = 25
max(Age)
ans = 50
binEdges = 25:5:50;
bins = {'late 20s','early 30s','late 30s','early 40s','late 40s+'};
groupAge = discretize(Age,binEdges,'categorical',bins);为每个年龄组创建一个箱线图。每个箱线图显示该组内患者的舒张压值。
boxchart(groupAge,Diastolic) xlabel('Age Group') ylabel('Diastolic Blood Pressure')

使用两个分组变量对数据进行分组,并对生成的箱线图进行定位和着色。
加载示例文件 TemperatureData.csv,此文件包含 2015 年 1 月至 2016 年 7 月间的日均温度。将该文件读入一个表中。
tbl = readtable('TemperatureData.csv');将 tbl.Month 变量转换为 categorical 变量。指定类别的顺序。
monthOrder = {'January','February','March','April','May','June','July', ...
'August','September','October','November','December'};
tbl.Month = categorical(tbl.Month,monthOrder);创建箱线图,显示每年每个月的温度分布。将 tbl.Month 指定为位置分组变量。使用 'GroupByColor' 名称-值对组参量将 tbl.Year 指定为颜色分组变量。请注意,tbl 不包含 2016 年某些月份的数据。
boxchart(tbl.Month,tbl.TemperatureF,'GroupByColor',tbl.Year) ylabel('Temperature (F)') legend

在此图中,您可以轻松比较某个特定月份在多个年份中的温度分布情况。例如,您可以看到 2016 年 2 月的气温变化比 2015 年大得多。
创建箱线图,并使用 hold on 在箱线图上绘制均值。
加载 patients 数据集。将 SelfAssessedHealthStatus 转换为有序 categorical 变量,因为 Poor、Fair、Good 和 Excellent 类别具有自然顺序。
load patients healthOrder = {'Poor','Fair','Good','Excellent'}; SelfAssessedHealthStatus = categorical(SelfAssessedHealthStatus, ... healthOrder,'Ordinal',true);
根据患者自我评估的健康状况对患者进行分组,并找出每组患者的体重均值。
meanWeight = groupsummary(Weight,SelfAssessedHealthStatus,'mean');使用箱线图比较各组患者的体重。在箱线图上绘制体重均值。
boxchart(SelfAssessedHealthStatus,Weight) hold on plot(meanWeight,'-o') hold off legend(["Weight Data","Weight Mean"])

使用缺口来确定中位数值是否彼此存在显著差异。
加载 patients 数据集。根据患者的位置拆分患者数据。为每组患者创建关于体重的箱线图。指定 'Notch','on',这样每个箱都包括一个称为缺口的锥形着色区域。在 5% 显著性水平上,缺口不重叠的箱线图具有不同中位数。
load patients boxchart(categorical(Location),Weight,'Notch','on') ylabel('Weight (lbs)')

在此示例中,三个缺口重叠,表明三个体重中位数没有显著差异。
使用 tiledlayout 和 nexttile 函数显示一对并排显示的箱线图。
加载 patients 数据集。将 Smoker 转换为 categorical 变量,并使用描述性的类别名称 Smoker 和 Nonsmoker,而不是 1 和 0。
load patients Smoker = categorical(Smoker,logical([1 0]),{'Smoker','Nonsmoker'});
使用 tiledlayout 函数创建一个 1×2 分块图布局。通过调用 nexttile 函数,在布局中创建第一个坐标区 ax1。在第一个坐标区中,显示两个关于收缩压值的箱线图,一个用于吸烟者,另一个用于非吸烟者。通过调用 nexttile 函数,在分块图布局中创建第二个坐标区 ax2。在第二个坐标区中,对舒张压执行同样的操作。
tiledlayout(1,2) % Left axes ax1 = nexttile; boxchart(ax1,Systolic,'GroupByColor',Smoker) ylabel(ax1,'Systolic Blood Pressure') legend % Right axes ax2 = nexttile; boxchart(ax2,Diastolic,'GroupByColor',Smoker) ylabel(ax2,'Diastolic Blood Pressure') legend

创建一组用不同颜色表示的箱线图,以 BoxChart 对象的向量形式返回。使用向量更改一个箱线图的颜色。
加载 patients 数据集。将 Gender 和 Smoker 转换为 categorical 变量。指定描述性的类别名称 Smoker 和 Nonsmoker,而不是 1 和 0。
load patients Gender = categorical(Gender); Smoker = categorical(Smoker,logical([1 0]),{'Smoker','Nonsmoker'});
将 Gender 和 Smoker 变量合并成一个分组变量 cgroupdata。创建箱线图,显示每个性别和吸烟状况对的舒张压水平的分布。b 是 BoxChart 对象组成的向量,每个对象对应一组数据。
cgroupdata = Gender.*Smoker;
b = boxchart(Diastolic,'GroupByColor',cgroupdata)b = 4×1 BoxChart array: BoxChart BoxChart BoxChart BoxChart
legend('Location','southeast')

使用 SeriesIndex 属性更新第三个箱线图的颜色。更新 SeriesIndex 属性会同时更改箱面颜色和离群值标记颜色。
b(3).SeriesIndex = 6;

基于包含许多离群值的停电数据创建一个箱线图,并通过更改 BoxChart 对象的属性来更轻松地从外观上区分它们。查找离群值条目的索引。
将停电数据以表形式读入工作区中。显示表的前几行。
outages = readtable('outages.csv');
head(outages) Region OutageTime Loss Customers RestorationTime Cause
_____________ ________________ ______ __________ ________________ ___________________
{'SouthWest'} 2002-02-01 12:18 458.98 1.8202e+06 2002-02-07 16:50 {'winter storm' }
{'SouthEast'} 2003-01-23 00:49 530.14 2.1204e+05 NaT {'winter storm' }
{'SouthEast'} 2003-02-07 21:15 289.4 1.4294e+05 2003-02-17 08:14 {'winter storm' }
{'West' } 2004-04-06 05:44 434.81 3.4037e+05 2004-04-06 06:10 {'equipment fault'}
{'MidWest' } 2002-03-16 06:18 186.44 2.1275e+05 2002-03-18 23:23 {'severe storm' }
{'West' } 2003-06-18 02:49 0 0 2003-06-18 10:54 {'attack' }
{'West' } 2004-06-20 14:39 231.29 NaN 2004-06-20 19:16 {'equipment fault'}
{'West' } 2002-06-06 19:28 311.86 NaN 2002-06-07 00:51 {'equipment fault'}
基于 outages.Customers 值创建一个 BoxChart 对象 b,这些值指示每次停电所影响的客户数量。boxchart 丢弃值为 NaN 的条目。
b = boxchart(outages.Customers);
ylabel('Number of Customers')
该图包含许多离群值。为了更好地查看它们,抖动离群值并更改离群值标记样式。当您将 BoxChart 对象的 JitterOutliers 属性设置为 'on' 时,软件会随机对离群值标记进行水平位移,使它们不会完全重叠。离群值的值和垂直位置不变。
b.JitterOutliers = 'on'; b.MarkerStyle = '.';

您现在可以更轻松地查看离群值的分布。
要查找离群值索引,请使用 isoutlier 函数。指定计算离群值的 'quartiles' 方法,以匹配 boxchart 离群值定义。使用索引创建 outliers 表,其中包含 outages 数据的子集。请注意,isoutlier 标识了 96 个离群值。
idx = isoutlier(outages.Customers,'quartiles');
outliers = outages(idx,:);
size(outliers,1)ans = 96
由于显示了所有离群值,很难查看箱线图的四分位数。要检查它们,请更改 y 轴范围。
ylim([0 4e5])

输入参数
样本数据,指定为数值向量或矩阵。
如果
ydata是矩阵,则boxchart为ydata的每列创建一个箱线图。如果
ydata是向量,而您没有指定xgroupdata或cgroupdata,则boxchart只创建一个箱线图。如果
ydata是向量,并且您指定了xgroupdata或cgroupdata,则boxchart会为xgroupdata和cgroupdata中的每个唯一值组合创建一个箱线图。
数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
位置分组变量,指定为数值或分类向量。xgroupdata 的长度必须与向量 ydata 的长度相同;当 ydata 是矩阵时,您无法指定 xgroupdata。
boxchart 根据 xgroupdata 和 cgroupdata 中的唯一值组合对 ydata 中的数据进行分组。该函数为每组数据创建一个箱线图,并将每个箱线图定位在对应的 xgroupdata 值处。默认情况下,boxchart 沿垂直方向放置箱线图,并沿 x 轴显示 xgroupdata 值。您可以使用 Orientation 属性来更改箱线图的方向。
数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | categorical
颜色分组变量,指定为数值向量、分类向量、逻辑向量,字符串数组、字符向量或字符向量元胞数组。cgroupdata 必须与向量 ydata 具有相同的长度;当 ydata 是矩阵时,无法指定 cgroupdata。
boxchart 根据 xgroupdata 和 cgroupdata 中的唯一值组合对 ydata 中的数据进行分组。该函数为每组数据创建一个箱线图,并为具有相同 cgroupdata 值的组分配相同的颜色。
数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | categorical | logical | string | char | cell
包含要绘制的数据的源表,指定为表或时间表。
包含位置分组数据的表变量,指定为一个或多个表变量索引。您指定的表变量必须包含数值、分类、日期时间或持续时间值。
指定表索引
使用以下任一索引方案指定预期的一个或多个变量。
| 索引方案 | 示例 |
|---|---|
变量名称:
|
|
变量索引:
|
|
变量类型:
|
|
绘制您的数据
要绘制一组箱线图,请分别为 xvar 和 yvar 指定一个变量。例如,使用一个分类分组变量和两个包含正态分布随机值的变量创建一个表。根据 X 中的数据分组绘制 Y1 中的数据。
X = categorical(repelem(["a1";"b1"],50)); Y1 = randn(100,1); Y2 = 5*randn(100,1)+10; tbl = table(X,Y1,Y2); boxchart(tbl,"X","Y1")
要一起绘制多个数据集,请为 xvar、yvar 或两者指定多个变量。如果为两个参量都指定多个变量,则每个参量的变量数目必须相同。
例如,使用 X 作为分组变量基于 Y1 中的数据创建一组箱线图,并使用 Y2 作为数据创建一组箱线图。
boxchart(tbl,"X",["Y1","Y2"])
您也可以对 xvar 和 yvar 使用不同索引方案。例如,将 xvar 指定为变量名称,将 yvar 指定为索引编号。
boxchart(tbl,"X",3)包含样本数据的表变量,指定为一个或多个表变量索引。您指定的表变量必须包含数值、分类、日期时间或持续时间值。
指定表索引
使用以下任一索引方案指定预期的一个或多个变量。
| 索引方案 | 示例 |
|---|---|
变量名称:
|
|
变量索引:
|
|
变量类型:
|
|
绘制您的数据
要绘制一组箱线图,请分别为 xvar 和 yvar 指定一个变量。例如,使用两个分类分组变量和一个包含正态分布随机值的变量创建一个表。根据 X1 中的数据分组绘制 Y 中的数据。
X1 = categorical(repelem(["a1";"b1"],50)); X2 = categorical(repelem(["a2";"b2";"c2"],[33,33,34])); Y = randn(100,1); tbl = table(X1,X2,Y); boxchart(tbl,"X1","Y")
要一起绘制多个数据集,请为 xvar、yvar 或两者指定多个变量。如果为两个参量都指定多个变量,则每个参量的变量数目必须相同。
例如,使用 X1 作为分组变量基于 Y 中的数据创建一组箱线图,并使用 X2 作为分组变量创建一组箱线图。
boxchart(tbl,["X1","X2"],"Y")
您也可以对 xvar 和 yvar 使用不同索引方案。例如,将 xvar 指定为变量名称,将 yvar 指定为索引编号。
boxchart(tbl,"X1",3)目标坐标区,指定为 Axes 对象。如果您不指定坐标区,则 boxchart 使用当前坐标区 (gca)。
名称-值参数
以 Name1=Value1,...,NameN=ValueN 的形式指定可选参量对组,其中 Name 是参量名称,Value 是对应的值。名称-值参量必须出现在其他参量之后,但对各个参量对组的顺序没有要求。
示例: boxchart([rand(10,4); 4*rand(1,4)],'BoxFaceColor',[0 0.5 0],'MarkerColor',[0 0.5 0]) 创建具有绿色箱和绿色离群值(如果适用)的箱线图。
注意
此处所列的 BoxChart 属性只是一部分。有关完整列表,请参阅 BoxChart 属性。
箱颜色,指定为 RGB 三元组、十六进制颜色代码、颜色名称或短名称。箱包括箱边缘和中位数线。要分别指定箱边缘和中位数线的颜色,可以使用 BoxEdgeColor 属性。要仅指定中位数线的颜色,请使用 BoxMedianLineColor 属性。
对于自定义颜色,请指定 RGB 三元组或十六进制颜色代码。
RGB 三元组是包含三个元素的行向量,其元素分别指定颜色中红、绿、蓝分量的强度。强度值必须位于
[0,1]范围内,例如[0.4 0.6 0.7]。十六进制颜色代码是字符串标量或字符向量,以井号 (
#) 开头,后跟三个或六个十六进制数字,范围可以是0到F。这些值不区分大小写。因此,颜色代码"#FF8800"与"#ff8800"、"#F80"与"#f80"是等效的。
此外,还可以按名称指定一些常见的颜色。下表列出了一些命名颜色选项、其等效 RGB 三元组及十六进制颜色代码。
| 颜色名称 | 短名称 | RGB 三元组 | 十六进制颜色代码 | 外观 |
|---|---|---|---|---|
"red" | "r" | [1 0 0] | "#FF0000" |
|
"green" | "g" | [0 1 0] | "#00FF00" |
|
"blue" | "b" | [0 0 1] | "#0000FF" |
|
"cyan" | "c" | [0 1 1] | "#00FFFF" |
|
"magenta" | "m" | [1 0 1] | "#FF00FF" |
|
"yellow" | "y" | [1 1 0] | "#FFFF00" |
|
"black" | "k" | [0 0 0] | "#000000" |
|
"white" | "w" | [1 1 1] | "#FFFFFF" |
|
"none" | 不适用 | 不适用 | 不适用 | 无颜色 |
下表列出了浅色和深色主题中绘图的默认调色板。
| 调色板 | 调色板颜色 |
|---|---|
在 R2025a 之前的版本中: 大多数绘图默认使用这些颜色。 |
|
|
|
您可以使用 orderedcolors 和 rgb2hex 函数获取这些调色板的 RGB 三元组和十六进制颜色代码。例如,获取 "gem" 调色板的 RGB 三元组并将其转换为十六进制颜色代码。
RGB = orderedcolors("gem");
H = rgb2hex(RGB);在 R2023b 之前的版本中: 使用 RGB = get(groot,"FactoryAxesColorOrder") 获取 RGB 三元组。
在 R2024a 之前的版本中: 使用 H = compose("#%02X%02X%02X",round(RGB*255)) 获取十六进制颜色代码。
示例: b = boxchart(rand(10,1),'BoxFaceColor','red')
示例: b.BoxFaceColor = [0 0.5 0.5];
示例: b.BoxFaceColor = '#EDB120';
自 R2025a 起
颜色分组布局,指定为 "grouped" 或 "overlaid"。默认情况下,每个颜色分组中的箱线图并排绘制。每个箱线图的宽度与 cgroupdata 中指定的颜色数量(即颜色数据中的唯一值)成反比。
当指定 ColorGroupLayout="overlaid" 时:
每个颜色分组中的箱线图叠加绘制。
该软件忽略
ColorGroupWidth的值。您可以通过指定
BoxWidth来调整每个叠加颜色分组之间的空间。
数据类型: string | char
离群值样式,指定为下表中列出的选项之一。
| 标记 | 描述 | 生成的标记 |
|---|---|---|
"o" | 圆圈 |
|
"+" | 加号 |
|
"*" | 星号 |
|
"." | 点 |
|
"x" | 叉号 |
|
"_" | 水平线条 |
|
"|" | 垂直线条 |
|
"square" | 方形 |
|
"diamond" | 菱形 |
|
"^" | 上三角 |
|
"v" | 下三角 |
|
">" | 右三角 |
|
"<" | 左三角 |
|
"pentagram" | 五角形 |
|
"hexagram" | 六角形 |
|
"none" | 无标记 | 不适用 |
示例: b = boxchart([rand(10,1);2],'MarkerStyle','x')
示例: b.MarkerStyle = 'x';
离群值标记位移,指定为 'on' 或 'off',或者指定为数值或逻辑值 1 (true) 或 0 (false)。值 'on' 等效于 true,'off' 等效于 false。因此,您可以使用此属性的值作为逻辑值。该值存储为 matlab.lang.OnOffSwitchState 类型的 on/off 逻辑值。
如果您将 JitterOutliers 属性设置为 'on',则 boxchart 会沿 XData 方向随机对离群值标记进行位移,以帮助您区分具有相似 ydata 值的离群值。有关示例,请参阅可视化和查找离群值。
示例: b = boxchart([rand(20,1);2;2;2],'JitterOutliers','on')
示例: b.JitterOutliers = 'on';
中位数比较显示,指定为 'on' 或 'off',或者指定为数值或逻辑值 1 (true) 或 0 (false)。值 'on' 等效于 true,'off' 等效于 false。因此,您可以使用此属性的值作为逻辑值。该值存储为 matlab.lang.OnOffSwitchState 类型的 on/off 逻辑值。
如果您将 Notch 属性设置为 'on',则 boxchart 会在每个中位数周围创建锥形着色区域。在 5% 显著性水平上,缺口不重叠的箱线图具有不同中位数。有关详细信息,请参阅箱线图。
缺口可以延伸到上下四分位数之外。
示例: b = boxchart(rand(10,2),'Notch','on')
示例: b.Notch = 'on';
箱线图的方向,指定为 'vertical' 或 'horizontal'。默认情况下,箱线图具有垂直方向,因此 ydata 统计量与 y 轴对齐。无论方向如何,boxchart 都将 ydata 值存储在 BoxChart 对象的 YData 属性中。
示例: b = boxchart(rand(10,1),'Orientation','horizontal')
示例: b.Orientation = 'horizontal';
输出参量
箱线图,以 BoxChart 对象的向量形式返回。b 包含的每个 BoxChart 对象对应于 cgroupdata 中的一个唯一值。有关详细信息,请参阅 BoxChart 属性。
详细信息
箱线图为数据样本提供摘要统计量的可视化表示。对于给定数值数据,对应的箱线图显示以下信息:中位数、下四分位数和上四分位数、任何离群值(使用四分位差计算得出)以及不是离群值的最小值和最大值。
每个箱内的线条表示样本中位数。您可以使用
median函数计算中位数的值。每个箱的上边缘和下边缘分别表示上四分位数和下四分位数。顶部和底部边缘之间的距离表示四分位差 (IQR)。
有关如何计算四分位数的详细信息,请参阅
quantile,其中上四分位数对应 0.75 分位数,下四分位数对应 0.25 分位数。离群值是指距离箱顶部或底部超过 1.5 · IQR 的值。默认情况下,
boxchart使用'o'符号显示每个离群值。离群值的计算方式与在'quartiles'方法中使用isoutlier函数类似。须线是延伸到每个箱的上方和下方的线条。一条须线将上四分位数与最大非离群值(不是离群值的最大数据值)相连,另一条须线将下四分位数与最小非离群值(不是离群值的最小数据值)相连。
缺口有助于您比较多个箱线图中的样本中位数。当您指定
'Notch','on'时,boxchart函数会在每个中位数周围创建锥形着色区域。在 5% 显著性水平上,缺口不重叠的箱线图具有不同中位数。显著性水平基于正态分布假设,但对于其他分布而言,中位数比较相当稳健。缺口区域的顶部和底部边缘分别对应于 和 ,其中 m 是中位数,IQR 是四分位差,n 是数据点数,不包括
NaN值。

提示
使用数据提示浏览
BoxChart对象中的数据。某些选项在实时编辑器中不可用。您可以向
BoxChart对象添加两种类型的数据提示:一种用于每个箱线图,另一种用于每个离群值。点击箱线图上的任何位置,常规数据提示都会出现在最大非离群值处。
注意
显示的
Num Points值包括对应ydata中的NaN值,但boxchart在计算箱线图统计量之前会丢弃NaN值。您可以使用
datatip函数向BoxChart对象添加更多数据提示,但数据提示的索引与其他图不同。boxchart首先为箱线图分配索引,然后为离群值分配索引。例如,如果BoxChart对象b显示两个箱线图和一个离群值,datatip(b,'DataIndex',3)会在离群值点处创建数据提示。
版本历史记录
在 R2020a 中推出您可以从表和时间表数据创建箱线图。使用新语法 boxchart(tbl,yvar) 从表 tbl 中的 yvar 变量创建箱线图。要从表创建分组箱线图,请使用 boxchart(tbl,xvar,yvar),其中 yvar 中的数据根据 xvar 中的数据分组。
您可以使用以下名称-值参量进一步自定义箱线图须线和颜色分组的外观:
CapWidth- 设置须线端顶的宽度。ColorGroupWidth- 调整每个箱线图颜色分组之间的空间。ColorGroupLayout- 指定是分组还是叠加每个颜色分组中的箱线图。BoxWidth- 调整每个叠加颜色分组之间的空间。
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
选择网站
选择网站以获取翻译的可用内容,以及查看当地活动和优惠。根据您的位置,我们建议您选择:。
您也可以从以下列表中选择网站:
如何获得最佳网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他 MathWorks 国家/地区网站并未针对您所在位置的访问进行优化。
美洲
- América Latina (Español)
- Canada (English)
- United States (English)
欧洲
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)
























