Добавьте планки погрешностей в сгруппированный гистограмму в MatLab

У меня есть простой сгруппированный столбчатый график. Я тоже пытаюсь построить планки ошибок, но я не могу понять это.

Я не слишком хорошо разбираюсь в циклах for, но я не знаю, является ли это единственным решением этой проблемы или я могу просто добавить еще одну строку кода для построения полос ошибок.

Вот мой код и график:

% Plot raw data
y = [316.45 292.14 319.96; 305.59 287.99 295.21]  % first 3 #s are pre-test, second 3 #s are post-test
err = [13.12 5.67 12.36; 12.43 6.83 11.67]

box on

bar(y)
set(gca,'xticklabel',{'Pre-test'; 'Post-test'}) 
ylim([200 360])
ylabel('RT (ms)')
xlabel('Session')

введите здесь описание изображения


person CogNeuro123    schedule 09.12.2019    source источник
comment


Ответы (1)


Вот решение, использующее стандартные функции errorbar и bar. bar отображает каждую группу в одной и той же позиции x и использует свойство Xoffset для смещения столбцов в группе. Вы можете использовать позицию x и Xoffset для построения полос погрешностей.

% Data
y = [316.45 292.14 319.96; 305.59 287.99 295.21]  % first 3 #s are pre-test, second 3 #s are post-test
err = [13.12 5.67 12.36; 12.43 6.83 11.67]

% Plot
figure(1); clf; 
hb = bar(y); % get the bar handles
hold on;
for k = 1:size(y,2)
    % get x positions per group
    xpos = hb(k).XData + hb(k).XOffset;
    % draw errorbar
    errorbar(xpos, y(:,k), err(:,k), 'LineStyle', 'none', ... 
        'Color', 'k', 'LineWidth', 1);
end

% Set Axis properties
set(gca,'xticklabel',{'Pre-test'; 'Post-test'});
ylim([200 360])
ylabel('RT (ms)')
xlabel('Session')

введите здесь описание изображения

person rinkert    schedule 09.12.2019
comment
Большое спасибо! Это достаточно простой цикл for, который я могу понять, я ценю это. - person CogNeuro123; 10.12.2019