箱线图(`boxchart`)
箱线图(boxchart)
03_统计与矩阵 5 张 MATLAB R2023b 100 mm 宽 @ 300 dpi
这个方法适合什么
五数概括加离群点,多组并排比较离散度。适合:四季负荷率、各方案线损率、各馈线电流、各绝缘等级温升。
电气场景
1 四季负荷率箱线

2 各方案线损率箱线

3 各馈线电流箱线

4 各台区三相电压不平衡度箱线

5 各绝缘等级温升箱线

代码
脚本 p3_stats_matrix.m 中对应 boxchart 的一段,SEL 用于选择只跑某几个方法。
if any(SEL==3)
rng(303);
% ---- 3.1 四季负荷率 ----
nm = {'春季','夏季','秋季','冬季'};
mu = [0.72 0.88 0.75 0.83];
N = 80;
x = repelem((1:4)',N);
y = zeros(4*N,1);
for k = 1:4
y((k-1)*N+(1:N)) = mu(k) + 0.075*randn(N,1) + 0.05*randn(N,1);
end
f = ml_fig(PP,100,80);
ax = axes('Parent',f,'Position',[0.175 0.245 0.770 0.700]);
bx = boxchart(ax,x,y,'BoxFaceColor',C(1,:),'MarkerStyle','o','MarkerSize',3);
set(bx,'BoxMedianLineColor',[0.15 0.15 0.15]);
set(ax,'XTick',1:4,'XTickLabel',ml_tx(nm));
xlabel(ml_tx('季节'));
ylabel(ml_tx('负荷率 <i>K</i>_{L} / p.u.'));
xlim(ax,[0.4 4.6]); ylim(ax,[0.50 1.04]);
xl = ax.XLabel; xl.Units = 'normalized'; xl.Position(2) = -0.175;
save_png(f,FIGD,'四季负荷率箱线');
% ---- 3.2 各降损方案线损率 ----
nm = {'现状','换导线','增容改造','无功补偿','综合改造'};
mu = [3.42 2.86 2.55 2.31 1.94];
N = 60;
x = repelem((1:5)',N);
y = zeros(5*N,1);
for k = 1:5
y((k-1)*N+(1:N)) = mu(k) + 0.18*randn(N,1);
end
f = ml_fig(PP,100,80);
ax = axes('Parent',f,'Position',[0.175 0.245 0.770 0.700]);
bx = boxchart(ax,x,y,'BoxFaceColor',C(3,:),'MarkerStyle','o','MarkerSize',3);
set(bx,'BoxMedianLineColor',[0.15 0.15 0.15]);
set(ax,'XTick',1:5,'XTickLabel',ml_tx(nm),'XTickLabelRotation',0);
xlabel(ml_tx('降损方案'));
ylabel(ml_tx('线损率 Δ<i>P</i> / %'));
xlim(ax,[0.4 5.6]); ylim(ax,[0.6 4.3]);
xl = ax.XLabel; xl.Units = 'normalized'; xl.Position(2) = -0.175;
save_png(f,FIGD,'各方案线损率箱线');
% ---- 3.3 各馈线日最大电流 ----
nm = {'F1','F2','F3','F4','F5','F6'};
mu = [268 342 215 398 286 176];
N = 45;
x = repelem((1:6)',N);
y = zeros(6*N,1);
for k = 1:6
y((k-1)*N+(1:N)) = mu(k)*(1 + 0.09*randn(N,1));
end
f = ml_fig(PP,100,80);
ax = axes('Parent',f,'Position',[0.175 0.245 0.770 0.700]);
bx = boxchart(ax,x,y,'BoxFaceColor',C(5,:),'MarkerStyle','o','MarkerSize',3);
set(bx,'BoxMedianLineColor',[0.15 0.15 0.15]);
set(ax,'XTick',1:6,'XTickLabel',ml_tx(nm));
xlabel(ml_tx('馈线编号'));
ylabel(ml_tx('日最大电流 <i>I</i>_{max} / A'));
xlim(ax,[0.4 6.6]); ylim(ax,[120 480]);
xl = ax.XLabel; xl.Units = 'normalized'; xl.Position(2) = -0.175;
save_png(f,FIGD,'各馈线电流箱线');
% ---- 3.4 各台区三相电压不平衡度(分组)----
nmT = {'1 号台区','2 号台区','3 号台区','4 号台区'};
nmP = {'A 相','B 相','C 相'};
base = [1.85 2.35 1.52 2.72];
N = 50; x = []; y = []; g = strings(0,1);
for k = 1:4
for p = 1:3
x = [x; k*ones(N,1)]; %#ok<AGROW>
y = [y; base(k)*(1 + 0.10*(p-1)) + 0.30*randn(N,1)]; %#ok<AGROW>
g = [g; repmat(nmP{p},N,1)]; %#ok<AGROW>
end
end
f = ml_fig(PP,100,80);
ax = axes('Parent',f,'Position',[0.175 0.245 0.770 0.700]);
boxchart(ax,x,y,'GroupByColor',categorical(g));
set(ax,'XTick',1:4,'XTickLabel',ml_tx(nmT),'XTickLabelRotation',0);
xlabel(ml_tx('配变台区'));
ylabel(ml_tx('三相电压不平衡度 \epsilon_{U} / %'));
xlim(ax,[0.4 4.6]); ylim(ax,[0 4.5]);
lg = legend(ax,ml_tx(nmP),'Location','northeast','Orientation','horizontal');
ml_style_legend(lg,PP);
xl = ax.XLabel; xl.Units = 'normalized'; xl.Position(2) = -0.175;
save_png(f,FIGD,'各台区三相电压不平衡度箱线');
% ---- 3.5 各绝缘等级温升(半载/满载分组)----
nmG = {'A 级','E 级','B 级','F 级','H 级'};
nmL = {'半载','满载'};
muG = [58 66 74 88 102];
N = 40; x = []; y = []; g = strings(0,1);
for k = 1:5
for i = 1:2
x = [x; k*ones(N,1)]; %#ok<AGROW>
y = [y; muG(k)*(0.82 + 0.18*i) + 3.2*randn(N,1)]; %#ok<AGROW>
g = [g; repmat(nmL{i},N,1)]; %#ok<AGROW>
end
end
f = ml_fig(PP,100,80);
ax = axes('Parent',f,'Position',[0.175 0.245 0.770 0.700]);
boxchart(ax,x,y,'GroupByColor',categorical(g));
set(ax,'XTick',1:5,'XTickLabel',ml_tx(nmG),'XTickLabelRotation',0);
xlabel(ml_tx('绝缘耐热等级'));
ylabel(ml_tx('绕组温升 Δ<i>T</i> / K'));
xlim(ax,[0.4 5.6]); ylim(ax,[35 130]);
lg = legend(ax,ml_tx(nmL),'Location','northeast','Orientation','horizontal');
ml_style_legend(lg,PP);
xl = ax.XLabel; xl.Units = 'normalized'; xl.Position(2) = -0.175;
save_png(f,FIGD,'各绝缘等级温升箱线');
end

浙公网安备 33010602011771号