How can I add error bars to a stacked bar graph?
Ältere Kommentare anzeigen
I want to add error bars to each section of my stacked bar graph,so that at each line there are error bars for that particular section of the stacked chart. Currently this is what code I am using.
y=[413.71 321.00 133.67 207.50 64.33 126.00; 279.32 190.00 105.33 192.00 54.33 118.33 ];
err=[20.22 58.59 58.05 10.61 8.08 24.58;15.7 36.29 24.79 1.00 14.50 19.60];
bar(y,'stacked');
hold on
errorbar(y,err);
But I am not getting the right result, instead getting something like this:

Can anybody help?
3 Kommentare
Star Strider
am 16 Feb. 2017
What MATLAB release are you using?
The solution is different for R2014a and earlier releases and for R2014b and later releases.
Sean de Wolski
am 16 Feb. 2017
judging from the colormap >= 14b.
Ellie Parr-Burman
am 21 Feb. 2017
Akzeptierte Antwort
Weitere Antworten (2)
Eliot Frank
am 5 Apr. 2018
For the OP: 2 problems: a line connects the error bars and the error bars are in the wrong place. Because of the stacked bars, you must accumulate the y values:
y=[413.71 321.00 133.67 207.50 64.33 126.00; 279.32 190.00 105.33 192.00 54.33 118.33 ];
err=[20.22 58.59 58.05 10.61 8.08 24.58;15.7 36.29 24.79 1.00 14.50 19.60];
bar(y,'stacked');
hold on
errorbar(cumsum(y')',err,'.k');
and the result:

Easwar Kumar Yarrabikki
am 16 Feb. 2017
Bearbeitet: Easwar Kumar Yarrabikki
am 16 Feb. 2017
1 Stimme
Hello Ellie, I did something like this. I hope it will work for you .I ran a below script on my machine and attached my results. I am not sure about your X data, I assumed it as flowing. I have tried this on R2013b and R2015a Let me know if this is not what you are looking for.....
y=[413.71 321.00 133.67 207.50 64.33 126.00; 279.32 190.00 105.33 192.00 54.33 118.33 ];
err=[20.22 58.59 58.05 10.61 8.08 24.58;15.7 36.29 24.79 1.00 14.50 19.60];
x=[1 2 3 4 5 6;7 8 9 10 11 12];
figure;
hold on
errorbar(x(1,:), y(1,:),err(1,:),'k')
errorbar(x(2,:), y(2,:),err(2,:),'r')
2 Kommentare
Ellie Parr-Burman
am 20 Feb. 2017
Evyatar Cohen
am 10 Jul. 2017
you need to add '.' after you choose your color: (errorbar(x(1,:), y(1,:),err(1,:),'k.')
Kategorien
Mehr zu Errorbars finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
