MATLAB Answers

Bar plot with two axis no plotting as grouped

조회 수: 2(최근 30일)
Oliver Massaad
Oliver Massaad 2021년 8월 30일
댓글: Oliver Massaad 2021년 8월 30일
Hi,
I want to plot a bar plot with two axis, and I want the two y vars to be grouped, but they always come out as stacked. I attached some sample code that you will need to execute the following code:
yyaxis left
bar(t,a,'grouped')
hold on
yyaxis right
bar(t,b,'grouped')
The output I get is the following:
Any idea why this might be happening?
Any help is appreciated,
Thanks!

채택된 답변

dpb
dpb 2021년 8월 30일
They're not stacked, they're just plotted on top of each other because there's only one series on each call to bar(); hence there's nothing to group. You just see whichever is the taller and if it happens to be the RH axis that is the top layer, then you see both which gives the appearance of stacked--but you'll note the value isn't the total as would be for a real stacked bar.
A diagnostic warning message about using the 'stacked' option with only one series might be a useful enhancement to give the user a clue what's going on.
Try
yyaxis left
bar(t,[a nan(size(a))],'grouped')
yyaxis right
bar(t,[nan(size(b)) b],'grouped')
The "trick" of a NaN placeholder array is a very common one and is often necessary to get the desired result with handle graphics as here.
  댓글 수: 1
Oliver Massaad
Oliver Massaad 2021년 8월 30일
That is a very clever trick. Very much appreciated, thank you!

댓글을 달려면 로그인하십시오.

추가 답변(0개)

제품


릴리스

R2020b

Community Treasure Hunt

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

Start Hunting!

Translated by