Stacked bar chart with errorbars

9 views (last 30 days)
Iron1759
Iron1759 on 8 Sep 2021
Commented: Iron1759 on 10 Sep 2021
Hi,
I've tried a simple code to test the idea of error bars with stacked bar chart but somehow it goes wrong:
data_bar = [8.89862100831768 10.6124723247243;
9.48697169408196 10.9541916851987;
8.97084136825914 10.6925827879448]; % 3 groups - 2 stacks per group
err = [0.2, 0.4; 0.3, 0.1; 0.5, 0.7];
XX = categorical({'sample1' , 'sample2', 'sample3'}); % group names
b = bar(XXX,data_bar,'stacked');
[ngroups,nbars] = size(data_bar);
x = nan(nbars, ngroups);
y = nan(nbars, ngroups);
for i = 1:nbars
x(i,:) = b(i).XEndPoints;
y(i,:) = b(i).YEndPoints; % for the data values
end
errorbar(x',y',err,'k','linestyle','none','HandleVisibility','off');
legend({'FFT' , 'DCT'});
x and y represent the locations of the errorbars but somehow I get something like this:
without the errorbars it looks fine:
Thanks!

Accepted Answer

Adam Danz
Adam Danz on 8 Sep 2021
Edited: Adam Danz on 9 Sep 2021
hold on % <--- you forgot this
errorbar(x',y',err,'k','linestyle','none','HandleVisibility','off');
Also, you can replace the for-loop with,
x = vertcat(b.XEndPoints)';
y = vertcat(b.YEndPoints)';
hold on
errorbar(x,y,err,'k','linestyle','none','HandleVisibility','off');
  1 Comment
Iron1759
Iron1759 on 10 Sep 2021
Sometimes the solution is easier than expected, the 'hold on' works. Thanks.

Sign in to comment.

More Answers (0)

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!