Info
Cette question est clôturée. Rouvrir pour modifier ou répondre.
Combined stacked and multi-bar barchart
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
I have three data columns (Y(:,1:3)) and their corresponding errors (Y(:,4:6)). What I want is Y(:,1) grouped with a stacked bar of Y(:,2:3).
The following code creates the attached plot.
figure;
b = bar(2:2:40,Y(:,1:3),'FaceColor','flat','EdgeColor','none');
X=cell2mat(get(b,'XData')).'+[b.XOffset];
b(1).FaceColor = [0 0 0];
b(2).FaceColor = [0.9 0 0];
b(3).FaceColor = [0 0.7 0];
hold on
errorbar(X(:,1),Y(:,1),Y(:,4),'LineStyle','none','Color',[0.6 0.6 0.6]);
errorbar(2:2:40,Y(:,2),Y(:,5),'LineStyle','none','Color',b(2).FaceColor*0.6);
errorbar(X(:,3),Y(:,3),Y(:,6),'LineStyle','none','Color',b(3).FaceColor*0.6);
hold off
So I want the green bar on top of the red bar (if green > 0, otherwise green bar below zero as usual). Repositioning the error bars is not a problem.
Is there any way to cleanly group stacked bars? I guess I could figure out some workaround by adding multiple bar plots together, but that seems messy and very time intensive....
Thanks!
(using Matlab 2020b)
3 commentaires
dpb
le 27 Avr 2021
I was asking if you wanted the green and red stacked or still wanted a third bar if green <0.
If just use 'stacked' for those two columns, the negative values will still be below the y axis, just not offset horizontally from the red.
Réponses (0)
Cette question est clôturée.
Voir également
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!