分组散点矩阵(`gplotmatrix`)
分组散点矩阵(gplotmatrix)
03_统计与矩阵 5 张 MATLAB R2023b 100 mm 宽 @ 300 dpi
这个方法适合什么
散点矩阵按类别着色,能看出组间的分离程度。适合:不同台区、不同型号设备的多变量特征对比与可分性判断。
电气场景
1 台区三变量分组散点矩阵

2 光伏逆变器四变量分组散点矩阵

3 储能电池四变量分组散点矩阵

4 电缆状态四变量分组散点矩阵

5 负荷特性四变量分组散点矩阵

代码
脚本 p3_stats_matrix.m 中对应 gplotmatrix 的一段,SEL 用于选择只跑某几个方法。
if any(SEL==9)
rng(909);
% ---- 9.1 台区三变量分组散点矩阵 ----
nm = {'负载率 / %','功率因数','线损率 / %'};
gn = {'居民台区','商业台区','工业台区'};
mu = [42 0.93 2.6; 62 0.95 2.2; 78 0.91 3.4];
N = 60; X = []; g = strings(0,1);
for k = 1:3
X = [X; repmat(mu(k,:),N,1) + [7 0.018 0.35].*randn(N,3)]; %#ok<AGROW>
g = [g; repmat(gn{k},N,1)]; %#ok<AGROW>
end
f = ml_fig(PP,112,100);
figure(f);
[H,AX,BigAx] = gplotmatrix(X,[],categorical(g),C(1:3,:),'o',3);
for i = 1:3, for j = 1:3
if i ~= j, set(H(i,j),'MarkerSize',2.6); end
end, end
for k = 1:numel(AX), set(AX(k),'LineWidth',0.5); end
for j = 1:3, xlabel(AX(3,j),ml_tx(nm{j})); end
for i = 1:3, ylabel(AX(i,1),ml_tx(nm{i})); end
set(BigAx,'Visible','off');
lg = findobj(f,'Type','Legend');
lg.String = ml_tx(gn); lg.Location = 'northwest';
ml_style_legend(lg,PP);
yl = ylim(AX(1,1)); ylim(AX(1,1),[yl(1) yl(2)*1.55]); % 抬高左上直方留图例空白带
save_png(f,FIGD,'台区三变量分组散点矩阵');
% ---- 9.2 光伏逆变器四变量分组散点矩阵 ----
nm = {'辐照度 / (W·m^{-2})','组件温度 / °C','出力 / kW','效率 / %'};
gn = {'晴天','多云'};
N = 70; X = []; g = strings(0,1);
G = [720+130*randn(N,1); 320+110*randn(N,1)];
Tc = 22 + 0.028*G + 3*randn(2*N,1);
Pw = 0.48*G.*(1-0.0038*(Tc-25))/1000*500;
et = 17.2 - 0.042*(Tc-25) + 0.3*randn(2*N,1);
X = [G Tc Pw et];
g = [repmat(string(gn{1}),N,1); repmat(string(gn{2}),N,1)];
f = ml_fig(PP,130,112);
figure(f);
[H,AX,BigAx] = gplotmatrix(X,[],categorical(g),C([1 2],:),'o',3);
for i = 1:4, for j = 1:4
if i ~= j, set(H(i,j),'MarkerSize',2.4); end
end, end
for k = 1:numel(AX), set(AX(k),'LineWidth',0.5); end
for j = 1:4, xlabel(AX(4,j),ml_tx(nm{j})); end
for i = 1:4, ylabel(AX(i,1),ml_tx(nm{i})); end
set(BigAx,'Visible','off');
lg = findobj(f,'Type','Legend');
lg.String = ml_tx(gn); lg.Location = 'northwest';
ml_style_legend(lg,PP);
yl = ylim(AX(1,1)); ylim(AX(1,1),[yl(1) yl(2)*1.55]);
save_png(f,FIGD,'光伏逆变器四变量分组散点矩阵');
% ---- 9.3 储能电池四变量分组散点矩阵 ----
nm = {'SOC / %','功率 / kW','温度 / °C','容量保持率 / %'};
gn = {'0.5C 倍率','1C 倍率','2C 倍率'};
N = 55; X = []; g = strings(0,1);
muS = [55 60 28 97.5; 50 110 34 95.2; 45 190 42 92.1];
for k = 1:3
X = [X; repmat(muS(k,:),N,1) + [9 12 2.4 0.8].*randn(N,4)]; %#ok<AGROW>
g = [g; repmat(gn{k},N,1)]; %#ok<AGROW>
end
f = ml_fig(PP,130,112);
figure(f);
[H,AX,BigAx] = gplotmatrix(X,[],categorical(g),C([3 5 6],:),'o',3);
for i = 1:4, for j = 1:4
if i ~= j, set(H(i,j),'MarkerSize',2.4); end
end, end
for k = 1:numel(AX), set(AX(k),'LineWidth',0.5); end
for j = 1:4, xlabel(AX(4,j),ml_tx(nm{j})); end
for i = 1:4, ylabel(AX(i,1),ml_tx(nm{i})); end
set(BigAx,'Visible','off');
lg = findobj(f,'Type','Legend');
lg.String = ml_tx(gn); lg.Location = 'northwest';
ml_style_legend(lg,PP);
yl = ylim(AX(1,1)); ylim(AX(1,1),[yl(1) yl(2)*1.55]);
save_png(f,FIGD,'储能电池四变量分组散点矩阵');
% ---- 9.4 电缆状态四变量分组散点矩阵 ----
nm = {'电流 / A','温升 / K','绝缘电阻 / MΩ','介损 / %'};
gn = {'10 kV 电缆','35 kV 电缆','110 kV 电缆'};
N = 55; X = []; g = strings(0,1);
muC = [185 32 2600 0.24; 240 41 3400 0.19; 320 48 4600 0.15];
for k = 1:3
X = [X; repmat(muC(k,:),N,1) + [22 3.5 260 0.028].*randn(N,4)]; %#ok<AGROW>
g = [g; repmat(gn{k},N,1)]; %#ok<AGROW>
end
f = ml_fig(PP,130,112);
figure(f);
[H,AX,BigAx] = gplotmatrix(X,[],categorical(g),C([2 4 1],:),'o',3);
for i = 1:4, for j = 1:4
if i ~= j, set(H(i,j),'MarkerSize',2.4); end
end, end
for k = 1:numel(AX), set(AX(k),'LineWidth',0.5); end
for j = 1:4, xlabel(AX(4,j),ml_tx(nm{j})); end
for i = 1:4, ylabel(AX(i,1),ml_tx(nm{i})); end
set(BigAx,'Visible','off');
lg = findobj(f,'Type','Legend');
lg.String = ml_tx(gn); lg.Location = 'northwest';
ml_style_legend(lg,PP);
yl = ylim(AX(1,1)); ylim(AX(1,1),[yl(1) yl(2)*1.55]);
save_png(f,FIGD,'电缆状态四变量分组散点矩阵');
% ---- 9.5 负荷特性四变量分组散点矩阵 ----
nm = {'峰荷 / MW','谷荷 / MW','负荷率 / %','同时率 / %'};
gn = {'居民负荷','商业负荷','工业负荷','混合负荷'};
N = 45; X = []; g = strings(0,1);
muL = [12.5 6.8 0.62 0.78; 16.2 5.4 0.55 0.82; 22.8 14.6 0.74 0.91; 17.4 9.2 0.66 0.85];
for k = 1:4
X = [X; repmat(muL(k,:),N,1) + [1.6 1.1 0.035 0.030].*randn(N,4)]; %#ok<AGROW>
g = [g; repmat(gn{k},N,1)]; %#ok<AGROW>
end
f = ml_fig(PP,130,112);
figure(f);
[H,AX,BigAx] = gplotmatrix(X,[],categorical(g),C([1 2 3 4],:),'o',3);
for i = 1:4, for j = 1:4
if i ~= j, set(H(i,j),'MarkerSize',2.4); end
end, end
for k = 1:numel(AX), set(AX(k),'LineWidth',0.5); end
for j = 1:4, xlabel(AX(4,j),ml_tx(nm{j})); end
for i = 1:4, ylabel(AX(i,1),ml_tx(nm{i})); end
set(BigAx,'Visible','off');
lg = findobj(f,'Type','Legend');
lg.String = ml_tx(gn); lg.Location = 'northwest';
ml_style_legend(lg,PP);
yl = ylim(AX(1,1)); ylim(AX(1,1),[yl(1) yl(2)*1.55]);
save_png(f,FIGD,'负荷特性四变量分组散点矩阵');
end

浙公网安备 33010602011771号