Main Content

本页翻译不是最新的。点击此处可查看最新英文版本。

boxchart

箱线图

自 R2020a 起

说明

示例

boxchart(ydata) 为矩阵 ydata 的每列创建一个箱线图。如果 ydata 是向量,则 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 属性

示例

boxchart(ax,___) 将图形绘制到 ax 指定的坐标区中,而不是当前坐标区 (gca) 中。参数 ax 可以置于前面的语法中的任何输入参数组合之前。

示例

b = boxchart(___) 返回 BoxChart 对象。如果未指定 cgroupdata,则 b 包含一个对象。如果您指定它,则 b 包含一个由对象组成的向量,其中每个对象对应于 cgroupdata 中的一个唯一值。创建箱线图后,使用 b 设置箱线图的属性。有关属性列表,请参阅 BoxChart 属性

示例

全部折叠

基于年龄向量创建一个箱线图。用箱线图来可视化年龄分布。

加载 patients 数据集。Age 变量包含 100 个患者的年龄信息。创建一个箱线图来可视化年龄分布。

load patients
boxchart(Age)
ylabel('Age (years)')

Figure contains an axes object. The axes object contains an object of type boxchart.

患者的中位数年龄为 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')

Figure contains an axes object. The axes object contains an object of type boxchart.

为幻方的每行创建一个箱线图。每行都有相似的四分位差,但各行的中位数值不同。

boxchart(Y')
xlabel('Row')
ylabel('Value')

Figure contains an axes object. The axes object contains an object of type boxchart.

根据地震发生的月份绘制地震的幅值。使用地震幅值向量和分组变量来表示每次地震的月份。对于每组数据,创建一个箱线图,并将其放置在 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 = 8x1 cell
    {0x0 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,earthquakes.EarthquakeMagnitude)
xlabel('Month')
ylabel('Earthquake Magnitude')

Figure contains an axes object. The axes object contains an object of type boxchart.

请注意,由于月份值是数值,因此 x 轴标尺也是数值。

如果想采用更具描述性的月份名称,请将 earthquakes.Month 列转换为 categorical 变量。

monthOrder = ["Jan","Feb","Mar","Apr","May","Jun","Jul", ...
    "Aug","Sep","Oct","Nov","Dec"];
namedMonths = categorical(earthquakes.Month,1:12,monthOrder);

创建与上面相同的箱线图,但使用 categorical 变量 namedMonths 代替数值月份值。x 轴标尺现在是分类值,namedMonths 中的类别顺序决定箱线图的顺序。

boxchart(namedMonths,earthquakes.EarthquakeMagnitude)
xlabel('Month')
ylabel('Earthquake Magnitude')

Figure contains an axes object. The axes object contains an object of type boxchart.

根据年龄对医疗患者进行分组,并为每个年龄组创建一个关于舒张压值的箱线图。

加载 patients 数据集。AgeDiastolic 变量包含 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')

Figure contains an axes object. The axes object contains an object of type boxchart.

使用两个分组变量对数据进行分组,并对生成的箱线图进行定位和着色。

加载示例文件 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

Figure contains an axes object. The axes object contains 2 objects of type boxchart. These objects represent 2015, 2016.

在此图中,您可以轻松比较某个特定月份在多个年份中的温度分布情况。例如,您可以看到 2016 年 2 月的气温变化比 2015 年大得多。

创建箱线图,并使用 hold on 在箱线图上绘制均值。

加载 patients 数据集。将 SelfAssessedHealthStatus 转换为有序 categorical 变量,因为 PoorFairGoodExcellent 类别具有自然顺序。

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"])

Figure contains an axes object. The axes object contains 2 objects of type boxchart, line. These objects represent Weight Data, Weight Mean.

使用缺口来确定中位数值是否彼此存在显著差异。

加载 patients 数据集。根据患者的位置拆分患者数据。为每组患者创建关于体重的箱线图。指定 'Notch','on',这样每个箱都包括一个称为缺口的锥形着色区域。在 5% 显著性水平上,缺口不重叠的箱线图具有不同中位数。

load patients
boxchart(categorical(Location),Weight,'Notch','on')
ylabel('Weight (lbs)')

Figure contains an axes object. The axes object contains an object of type boxchart.

在此示例中,三个缺口重叠,表明三个体重中位数没有显著差异。

使用 tiledlayoutnexttile 函数显示一对并排显示的箱线图。

加载 patients 数据集。将 Smoker 转换为 categorical 变量,并使用描述性的类别名称 SmokerNonsmoker,而不是 10

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

Figure contains 2 axes objects. Axes object 1 contains 2 objects of type boxchart. These objects represent Smoker, Nonsmoker. Axes object 2 contains 2 objects of type boxchart. These objects represent Smoker, Nonsmoker.

创建一组用不同颜色表示的箱线图,以 BoxChart 对象的向量形式返回。使用向量更改一个箱线图的颜色。

加载 patients 数据集。将 GenderSmoker 转换为 categorical 变量。指定描述性的类别名称 SmokerNonsmoker,而不是 10

load patients
Gender = categorical(Gender);
Smoker = categorical(Smoker,logical([1 0]),{'Smoker','Nonsmoker'});

GenderSmoker 变量合并成一个分组变量 cgroupdata。创建箱线图,显示每个性别和吸烟状况对的舒张压水平的分布。bBoxChart 对象组成的向量,每个对象对应一组数据。

cgroupdata = Gender.*Smoker;
b = boxchart(Diastolic,'GroupByColor',cgroupdata)
b = 
  4x1 BoxChart array:

  BoxChart
  BoxChart
  BoxChart
  BoxChart

legend('Location','southeast')

Figure contains an axes object. The axes object contains 4 objects of type boxchart. These objects represent Female Smoker, Female Nonsmoker, Male Smoker, Male Nonsmoker.

使用 SeriesIndex 属性更新第三个箱线图的颜色。更新 SeriesIndex 属性会同时更改箱面颜色和离群值标记颜色。

b(3).SeriesIndex = 6;

Figure contains an axes object. The axes object contains 4 objects of type boxchart. These objects represent Female Smoker, Female Nonsmoker, Male Smoker, Male Nonsmoker.

基于包含许多离群值的停电数据创建一个箱线图,并通过更改 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')

Figure contains an axes object. The axes object contains an object of type boxchart.

该图包含许多离群值。为了更好地查看它们,抖动离群值并更改离群值标记样式。当您将 BoxChart 对象的 JitterOutliers 属性设置为 'on' 时,软件会随机对离群值标记进行水平位移,使它们不会完全重叠。离群值的值和垂直位置不变。

b.JitterOutliers = 'on';
b.MarkerStyle = '.';

Figure contains an axes object. The axes object contains an object of type boxchart.

您现在可以更轻松地查看离群值的分布。

要查找离群值索引,请使用 isoutlier 函数。指定计算离群值的 'quartiles' 方法,以匹配 boxchart 离群值定义。使用索引创建 outliers 表,其中包含 outages 数据的子集。请注意,isoutlier 标识了 96 个离群值。

idx = isoutlier(outages.Customers,'quartiles');
outliers = outages(idx,:);
size(outliers,1)
ans = 96

由于显示了所有离群值,很难查看箱线图的四分位数。要检查它们,请更改 y 轴范围。

ylim([0 4e5])

Figure contains an axes object. The axes object contains an object of type boxchart.

输入参数

全部折叠

样本数据,指定为数值向量或矩阵。

  • 如果 ydata 是矩阵,则 boxchartydata 的每列创建一个箱线图。

  • 如果 ydata 是向量,而您没有指定 xgroupdatacgroupdata,则 boxchart 只创建一个箱线图。

  • 如果 ydata 是向量,并且您指定了 xgroupdatacgroupdata,则 boxchart 会为 xgroupdatacgroupdata 中的每个唯一值组合创建一个箱线图。

数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

位置分组变量,指定为数值或分类向量。xgroupdata 的长度必须与向量 ydata 的长度相同;当 ydata 是矩阵时,您无法指定 xgroupdata

boxchart 根据 xgroupdatacgroupdata 中的唯一值组合对 ydata 中的数据进行分组。该函数为每组数据创建一个箱线图,并将每个箱线图定位在对应的 xgroupdata 值处。默认情况下,boxchart 沿垂直方向放置箱线图,并沿 x 轴显示 xgroupdata 值。您可以使用 Orientation 属性来更改箱线图的方向。

数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | categorical

颜色分组变量,指定为数值向量、分类向量、逻辑向量,字符串数组、字符向量或字符向量元胞数组。cgroupdata 必须与向量 ydata 具有相同的长度;当 ydata 是矩阵时,无法指定 cgroupdata

boxchart 根据 xgroupdatacgroupdata 中的唯一值组合对 ydata 中的数据进行分组。该函数为每组数据创建一个箱线图,并为具有相同 cgroupdata 值的组分配相同的颜色。

数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | categorical | logical | string | char | cell

目标坐标区,指定为 Axes 对象。如果您不指定坐标区,则 boxchart 使用当前坐标区 (gca)。

名称-值参数

将可选的参数对组指定为 Name1=Value1,...,NameN=ValueN,其中 Name 是参数名称,Value 是对应的值。名称-值参数必须出现在其他参数之后,但参数对组的顺序无关紧要。

在 R2021a 之前,使用逗号分隔每个名称和值,并用引号将 Name 引起来。

示例: 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]

  • 十六进制颜色代码是字符向量或字符串标量,以井号 (#) 开头,后跟三个或六个十六进制数字,范围可以是 0F。这些值不区分大小写。因此,颜色代码 "#FF8800""#ff8800""#F80""#f80" 是等效的。

此外,还可以按名称指定一些常见的颜色。下表列出了命名颜色选项、等效 RGB 三元组和十六进制颜色代码。

颜色名称短名称RGB 三元组十六进制颜色代码外观
"red""r"[1 0 0]"#FF0000"

Sample of the color red

"green""g"[0 1 0]"#00FF00"

Sample of the color green

"blue""b"[0 0 1]"#0000FF"

Sample of the color blue

"cyan" "c"[0 1 1]"#00FFFF"

Sample of the color cyan

"magenta""m"[1 0 1]"#FF00FF"

Sample of the color magenta

"yellow""y"[1 1 0]"#FFFF00"

Sample of the color yellow

"black""k"[0 0 0]"#000000"

Sample of the color black

"white""w"[1 1 1]"#FFFFFF"

Sample of the color white

"none"不适用不适用不适用无颜色

以下是 MATLAB® 在许多类型的绘图中使用的默认颜色的 RGB 三元组和十六进制颜色代码。

RGB 三元组十六进制颜色代码外观
[0 0.4470 0.7410]"#0072BD"

Sample of RGB triplet [0 0.4470 0.7410], which appears as dark blue

[0.8500 0.3250 0.0980]"#D95319"

Sample of RGB triplet [0.8500 0.3250 0.0980], which appears as dark orange

[0.9290 0.6940 0.1250]"#EDB120"

Sample of RGB triplet [0.9290 0.6940 0.1250], which appears as dark yellow

[0.4940 0.1840 0.5560]"#7E2F8E"

Sample of RGB triplet [0.4940 0.1840 0.5560], which appears as dark purple

[0.4660 0.6740 0.1880]"#77AC30"

Sample of RGB triplet [0.4660 0.6740 0.1880], which appears as medium green

[0.3010 0.7450 0.9330]"#4DBEEE"

Sample of RGB triplet [0.3010 0.7450 0.9330], which appears as light blue

[0.6350 0.0780 0.1840]"#A2142F"

Sample of RGB triplet [0.6350 0.0780 0.1840], which appears as dark red

示例: b = boxchart(rand(10,1),'BoxFaceColor','red')

示例: b.BoxFaceColor = [0 0.5 0.5];

示例: b.BoxFaceColor = '#EDB120';

离群值样式,指定为下表中列出的选项之一。

标记描述生成的标记
"o"圆圈

Sample of circle marker

"+"加号

Sample of plus sign marker

"*"星号

Sample of asterisk marker

"."

Sample of point marker

"x"叉号

Sample of cross marker

"_"水平线条

Sample of horizontal line marker

"|"垂直线条

Sample of vertical line marker

"square"方形

Sample of square marker

"diamond"菱形

Sample of diamond line marker

"^"上三角

Sample of upward-pointing triangle marker

"v"下三角

Sample of downward-pointing triangle marker

">"右三角

Sample of right-pointing triangle marker

"<"左三角

Sample of left-pointing triangle marker

"pentagram"五角形

Sample of pentagram marker

"hexagram"六角形

Sample of hexagram marker

"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+(1.57IQR)/nm(1.57IQR)/n,其中 m 是中位数,IQR 是四分位差,n 是数据点数,不包括 NaN 值。

Example box charts, with labels for the summary statistics

提示

  • 使用数据提示浏览 BoxChart 对象中的数据。某些选项在实时编辑器中不可用。

    • 您可以向 BoxChart 对象添加两种类型的数据提示:一种用于每个箱线图,另一种用于每个离群值。点击箱线图上的任何位置,常规数据提示都会出现在最大非离群值处。

      Example box chart, with two outlier data tips and a general data tip

      注意

      显示的 Num Points 值包括对应 ydata 中的 NaN 值,但 boxchart 在计算箱线图统计量之前会丢弃 NaN 值。

    • 您可以使用 datatip 函数向 BoxChart 对象添加更多数据提示,但数据提示的索引与其他图不同。boxchart 首先为箱线图分配索引,然后为离群值分配索引。例如,如果 BoxChart 对象 b 显示两个箱线图和一个离群值,datatip(b,'DataIndex',3) 会在离群值点处创建数据提示。

版本历史记录

在 R2020a 中推出

另请参阅

函数

属性