Vertically overlapping 'stacked' bars

12 ビュー (過去 30 日間)
Philip Berg
Philip Berg 2017 年 1 月 30 日
回答済み: Iddo Weiner 2017 年 2 月 1 日
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)

回答 (2 件)

Iddo Weiner
Iddo Weiner 2017 年 1 月 31 日
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 件のコメント
Philip Berg
Philip Berg 2017 年 1 月 31 日
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'.

サインインしてコメントする。


Iddo Weiner
Iddo Weiner 2017 年 2 月 1 日
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?

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by