【问题标题】:Add error bars to grouped bar plot in MatLab在 MatLab 中将误差线添加到分组条形图中
【发布时间】:2019-12-09 20:31:05
【问题描述】:

我有一个简单的分组条形图。我也在尝试绘制误差线,但我似乎无法弄清楚。

我不太擅长 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')

【问题讨论】:

标签: matlab bar-chart errorbar


【解决方案1】:

这是使用标准 errorbarbar 函数的解决方案。 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')

【讨论】:

  • 非常感谢!这是一个足够简单的循环,我能理解,我很感激
猜你喜欢
  • 2020-12-31
  • 2014-05-24
  • 2014-05-02
  • 2016-01-04
  • 1970-01-01
  • 2016-06-28
  • 1970-01-01
  • 2023-03-19
  • 1970-01-01
相关资源
最近更新 更多