Boxplot для парных наблюдений - PullRequest
0 голосов
/ 05 февраля 2019

Я ищу график парных графиков для парных наблюдений (с отдельными точками данных) в MATLAB, аналогично выводу R's ggpaired:

enter image description here

Я мог бы создать коробочные графики с помощью функции 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

Что дает:

enter image description here

1 Ответ

0 голосов
/ 05 февраля 2019

Здесь может пригодиться 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

enter image description here

Однако для этого требуется Панель инструментов статистики и машинного обучения .Если у вас нет этого набора инструментов, то же самое можно сделать с помощью линейных графиков:

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

Результат вышеупомянутого визуально идентичен, но есть некоторая разница с точки зрения всплывающих подсказок точек (которыенемного более информативны в первом случае).

...