How can I get a stacked bar graph with a single bar?

Hello,
I am trying to get a single bar using the stacked property:
figure; bar([0.2 0.8], 'stacked')
This does not create a single stacked bar, it creates two bars of height 0.2 and 0.8.
A work-around is:
figure;bar([0.2 0.8; 1 1],'stacked'); set(gca,'xlim',[0.5 1.5])
But this seems like a silly thing to have to do.
Does anyone know why the stacked input doesn't seem to work for a single bar?
Thanks.

 Accepted Answer

One possibility for a workaround:
v = [0.2 0.8];
figure;
bar(sum(v), 'y')
hold on
bar(v(1), 'b')
hold off

6 Comments

Thanks, that works, but it is also a workaround. It seems like it should work without it.
I want to plot bar (stacked) of 13 data. I tried the same code with a variable containing 13 data points(instead of 2 variable in your data). However, the output plot consists of last value only. Please help. Thanks.
this should work:
bar([1,2,3,4,5,6,7,8,9,10,11,12,13; nan(1,13)], 'Stacked');
set(gca,'xtick',1)
just add 1 line to limit the x axis:
bar([1,2,3,4,5,6,7,8,9,10,11,12,13; nan(1,13)], 'Stacked');
set(gca,'xtick',1);
xlim([0.25 1.75]);
Note that if you also actually specify x values and use a NaN there as well, you do not have to tweak the limits and ticks:
bar([1;nan], [1:3; nan(1,3)], 'stacked')

Sign in to comment.

More Answers (1)

Daniel
Daniel on 11 Feb 2020
Edited: Daniel on 27 Apr 2020
(requires MATLAB 2019b or later)
bar(1,[0.2 0.8], 'stacked')
Use the bar(x,y) synatax instead of bar(y). This way you can control if the bars are grouped.

4 Comments

I tried this an got this ERROR:
bar(1,[0.2 0.8], 'stacked')
% Error using bar (line 172)
% X must be same length as Y.
I wasn't aware when writing the answer, but this works only in MATLAB 2019b or later.
Do you maybe know how to remove the margins from left anr right? Thanks
@Daniel Do you know how to overlap the series instead of summing then? If you see your bar graph it is summing your data series, and stacking them. I would like to have the same graph but with the time series overlapped to highlight the difference between the serires. Thank you.

Sign in to comment.

Tags

Community Treasure Hunt

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

Start Hunting!