Vertically overlapping 'stacked' bars

4 visualizzazioni (ultimi 30 giorni)
Philip Berg
Philip Berg il 30 Gen 2017
Risposto: Iddo Weiner il 1 Feb 2017
I have some data I want to display as a bar plot. But, some of the values are positive and some are negative, this makes the bars overlap, vertically, when using 'stacked'. Now, at least for me, each group only has two bars stacked on top of each other. Instead of MATLAB's default, I would like to display half of the side (right or left) in the color of on of the bars, and the other side in the other color of the other to indicate how big the "hidden" bar is. Thanks for any help. (MATLAB R2015b)

Risposte (2)

Iddo Weiner
Iddo Weiner il 31 Gen 2017
Hope I understood correctly.. Try this:
a = rand(5,1);
b = -1 * rand(5,1);
data = [a b];
bar(data)
legend('positive value','negative value')
  1 Commento
Philip Berg
Philip Berg il 31 Gen 2017
If you had used 'stacked', sorry, I only noted this in the title so I have slightly edited my post. But, you also don't have issues with "hidden" bars or any form of vertical overlay, which you will get if you change to 'stacked'.

Accedi per commentare.


Iddo Weiner
Iddo Weiner il 1 Feb 2017
Philip, I think I understand - you insist on having your bars stacked, but when you do so with negative values, this "hides" some of the data, right?
Here's an idea - make your bars semi-transparent:
a = rand(5,1);
b = -1 * rand(5,1);
data = [a b];
bar(data,'stacked')
alpha (0.5)
legend('positive value','negative value')
This way you see the hidden data.. Does this help?

Categorie

Scopri di più su Printing and Saving in Help Center e File Exchange

Tag

Community Treasure Hunt

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

Start Hunting!

Translated by