成对观察的箱线图

Boxplot for paired observations

我正在寻找在 MATLAB 中绘制成对观察(具有单独数据点)的箱线图,类似于 R 的输出 ggpaired:

我可以用 boxplot 函数绘制箱线图,但我不知道如何绘制单个数据点和连接成对观察值的线。

到目前为止我的代码:

load('MMN_Adult_Amp.mat');
load('Condition.mat');
figure;
boxplot(MMN_Adult_Amp, Condition)
xlabel('Condition','FontSize', 10)
ylabel('Amplitude (\muV)','FontSize', 10)
box off

给出:

parallelcoords 在这里可能会派上用场:

function q54528239
%% Load some sample data:
measures = struct2array(load('fisheriris','meas'));
%% Plot
figure();
coordLineStyle = 'k.';
boxplot(measures(1:20,1:2), 'Symbol', coordLineStyle); hold on;
parallelcoords(measures(1:20,1:2), 'Color', 0.7*[1 1 1], 'LineStyle', '-',...
  'Marker', '.', 'MarkerSize', 10);
end

但是,它需要 统计和机器学习工具箱。如果你没有这个工具箱,同样可以使用线图来实现:

function q54528239
%% Load some sample data:
measures = struct2array(load('fisheriris','meas'));
nCats = 2;
nDatas = 20;
%% Plot
figure();
boxplot(measures(1:nDatas, 1:nCats), 'Symbol', 'k.'); hold on;
line(repmat([(1:nCats).';NaN], [nDatas,1]), ...
  reshape(measures(1:nDatas,[1:nCats, 1]).', [], 1), ...
  'Color', 0.7*[1 1 1], 'Marker', '.', 'MarkerSize', 10);
end

上面的结果在视觉上是相同的,但在点的工具提示方面存在一些差异(在第一种情况下信息量更大)。