箱形图(又称为「盒须图」或「箱线图」)能方便显示数字数据组的四分位数。箱形图通常用于描述性统计,是以图形方式快速查看一个或多个数据集的好方法。虽然与直方图或密度图相比似乎有点原始,但它们占用较少空间,当要比较很多组或数据集之间的分布时便相当有用。
该图展示的是一个箱线图(Box Plot)的主要组成部分及其含义。箱线图是一种用于展示数据分布情况的统计图表,能够直观地反映数据的集中趋势、离散程度以及异常值。以下是图中各部分的详细解释:
规模(Scale)
指的是图表上的数值刻度,用于衡量数据的大小或范围。
上极限(Upper Whisker End)
表示数据的上限,通常是数据中不超过“上四分位数 + 1.5 × 四分位距(IQR)”的最大值。超出此范围的值可能被视为异常值。
上四分位数(Upper Quartile, Q3)
即第三四分位数,表示数据中75%的值小于或等于该数值。它是箱子的上边界。
中位数(Median, Q2)
即第二四分位数,表示数据中50%的值小于或等于该数值。中位数是箱子中间的线,反映数据的集中趋势。
下四分位数(Lower Quartile, Q1)
即第一四分位数,表示数据中25%的值小于或等于该数值。它是箱子的下边界。
晶须(Whisker)
指的是从箱子延伸出的直线,连接上四分位数到上极限和下四分位数到下极限,用于展示数据的正常范围。
下极限(Lower Whisker End)
表示数据的下限,通常是数据中不低于“下四分位数 - 1.5 × 四分位距(IQR)”的最小值。低于此范围的值可能被视为异常值。
异常值/单一数据点(Outliers/Individual Data Points)
指那些超出上下极限的数据点,通常用小圆点或其他符号单独标记。这些值可能是异常值或极端值,需要特别关注。
导入数据,并为每组设置标签。
clc;clear;close all
%% 导入数据
load data.mat;
% 坐标区域每组变量之间的标签
X ={' ','M1','M2','M3','M4','M5'};
修改箱线图的颜色:
%% 可视化箱线图
figure(1);
%% 设置配色
mycolor1 = [220 211 30;180 68 108;242 166 31;244 146 121;59 125 183]./255;
mycolor2 = [255 255 0;254 0 0;85 160 251;126 126 126;255 255 255]./255;
mycolor3 = [250 221 214;130 130 130;255 255 255;100 195 191;232 245 176]./255;
mycolor4 = [255 255 255;131 131 131;0 0 254;131 131 131;255 255 255]./255;
在MATLAB中,使用boxplot
函数可以轻松绘制单组箱线图。箱线图能够展示数据的分布情况,包括中位数、四分位数、异常值等统计信息。
%% 开始绘图
%参数依次为数据矩阵、颜色设置、标记符
box = boxplot(data,'color',[0 0 0],'Symbol','o');
%设置线宽
set(box,'Linewidth',1.2);
boxobj = findobj(gca,'Tag','Box');
for i = 1:5
patch(get(boxobj(i),'XData'),get(boxobj(i),'YData'),mycolor3(i,:),'FaceAlpha',0.5,...
'LineWidth',1.1);
end
hold on;
通过set函数对坐标区的各种属性进行调整
xlabel('变量','Fontsize',10,'FontWeight','bold','FontName','楷体');
ylabel('数值','Fontsize',10,'FontWeight','bold','FontName','楷体');
title('单组别多色箱式图','Fontsize',10,'FontWeight','bold','FontName','楷体');
set(gca,'Linewidth',1.1); % 设置坐标区的线宽
set(gca,'Fontsize',11); % 设置坐标区字体大小
% 对X轴刻度与显示范围调整
set(gca,'Xlim',[0.5 5.5], 'Xtick', 0:1:5.5,'Xticklabel',X);
% 对Y轴刻度与显示范围调整
set(gca,'YTick', 2:0.5:7.5,'Ylim',[2 7.5]);
% 对刻度长度与刻度显示位置调整
set(gca, 'TickDir', 'in', 'TickLength', [.008 .008]);
clc;clear;close all
%% 导入数据
load data.mat;
% 坐标区域每组变量之间的标签
X ={' ','M1','M2','M3','M4','M5'};
%% 可视化箱线图
figure(1);
%% 设置配色
mycolor1 = [220 211 30;180 68 108;242 166 31;244 146 121;59 125 183]./255;
mycolor2 = [255 255 0;254 0 0;85 160 251;126 126 126;255 255 255]./255;
mycolor3 = [250 221 214;130 130 130;255 255 255;100 195 191;232 245 176]./255;
mycolor4 = [255 255 255;131 131 131;0 0 254;131 131 131;255 255 255]./255;
%% 开始绘图
%参数依次为数据矩阵、颜色设置、标记符
box = boxplot(data,'color',[0 0 0],'Symbol','o');
%设置线宽
set(box,'Linewidth',1.2);
boxobj = findobj(gca,'Tag','Box');
for i = 1:5
patch(get(boxobj(i),'XData'),get(boxobj(i),'YData'),mycolor3(i,:),'FaceAlpha',0.5,...
'LineWidth',1.1);
end
hold on;
%% 设置坐标区域的参数
xlabel('变量','Fontsize',10,'FontWeight','bold','FontName','楷体');
ylabel('数值','Fontsize',10,'FontWeight','bold','FontName','楷体');
title('单组别多色箱式图','Fontsize',10,'FontWeight','bold','FontName','楷体');
set(gca,'Linewidth',1.1); % 设置坐标区的线宽
set(gca,'Fontsize',11); % 设置坐标区字体大小
% 对X轴刻度与显示范围调整
set(gca,'Xlim',[0.5 5.5], 'Xtick', 0:1:5.5,'Xticklabel',X);
% 对Y轴刻度与显示范围调整
set(gca,'YTick', 2:0.5:7.5,'Ylim',[2 7.5]);
% 对刻度长度与刻度显示位置调整
set(gca, 'TickDir', 'in', 'TickLength', [.008 .008]);