数据可视化5:MATLAB绘制单组箱线图

箱线图的作用

箱形图(又称为「盒须图」或「箱线图」)能方便显示数字数据组的四分位数。箱形图通常用于描述性统计,是以图形方式快速查看一个或多个数据集的好方法。虽然与直方图或密度图相比似乎有点原始,但它们占用较少空间,当要比较很多组或数据集之间的分布时便相当有用。

箱线图基本描述

数据可视化5:MATLAB绘制单组箱线图_第1张图片

 

      该图展示的是一个箱线图(Box Plot)的主要组成部分及其含义。箱线图是一种用于展示数据分布情况的统计图表,能够直观地反映数据的集中趋势、离散程度以及异常值。以下是图中各部分的详细解释:

  1. 规模(Scale)
    指的是图表上的数值刻度,用于衡量数据的大小或范围。

  2. 上极限(Upper Whisker End)
    表示数据的上限,通常是数据中不超过“上四分位数 + 1.5 × 四分位距(IQR)”的最大值。超出此范围的值可能被视为异常值。

  3. 上四分位数(Upper Quartile, Q3)
    即第三四分位数,表示数据中75%的值小于或等于该数值。它是箱子的上边界。

  4. 中位数(Median, Q2)
    即第二四分位数,表示数据中50%的值小于或等于该数值。中位数是箱子中间的线,反映数据的集中趋势。

  5. 下四分位数(Lower Quartile, Q1)
    即第一四分位数,表示数据中25%的值小于或等于该数值。它是箱子的下边界。

  6. 晶须(Whisker)
    指的是从箱子延伸出的直线,连接上四分位数到上极限和下四分位数到下极限,用于展示数据的正常范围。

  7. 下极限(Lower Whisker End)
    表示数据的下限,通常是数据中不低于“下四分位数 - 1.5 × 四分位距(IQR)”的最小值。低于此范围的值可能被视为异常值。

  8. 异常值/单一数据点(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]);

你可能感兴趣的:(数据可视化5:MATLAB绘制单组箱线图)