Bar plot with two axis no plotting as grouped

2 次查看(过去 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.

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Annotations 的更多信息

产品


版本

R2020b

Community Treasure Hunt

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

Start Hunting!

Translated by