# Remove the edge between two stacked bars

1 view (last 30 days)
giannit on 24 Jul 2020
Edited: giannit on 24 Jul 2020
Consider the following stacked bars
data = [2 1 ; 3 2];
b = bar(data,'stacked');
axis([0 3 0 6])
the plot I'd like to obtain is the one showed in the image below, that is stacked bars with all edges but the one between the bars.
I tried with `b(1).EdgeAlpha = 0` but this removes also the side edges of the blue bar.
A very naive (and ugly) approach is to remove all edges and then to plot a rectangle with the size of the two stacked bars
data = [2 1 ; 3 2];
bar(data,'stacked','EdgeAlpha',0);
hold on
axis([0 3 0 6])
syms x
fplot(rectangularPulse((x-1)*1.25)*sum(data(1,:)), [.6 1.4]+[-1 1]*1e-13,'k')
fplot(rectangularPulse((x-2)*1.25)*sum(data(2,:)), [1.6 2.4]+[-1 1]*1e-13,'k')
Is there a handy way using the bar properties or something else?

KSSV on 24 Jul 2020
bar(data,'stacked','EdgeAlpha',0,'EdgeColor','none');

#### 1 Comment

giannit on 24 Jul 2020
The plots generated by
bar(data,'stacked','EdgeAlpha',0,'EdgeColor','none')
and by
bar(data,'stacked','EdgeAlpha',0)
are the same and they have no edges at all, while I'd like to keep all edges but the one between the bars.

R2019b

### Community Treasure Hunt

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

Start Hunting!