Plot order with two Y-axes?

41 Ansichten (letzte 30 Tage)
peaksix
peaksix am 14 Apr. 2017
Kommentiert: Arthur Vieira am 5 Mai 2021
I am creating a plot with a line plot on the left y-axis and a bar plot on the right y-axis. I am doing this using:
line1 = plot(x,y);
yyaxis right
bar1 = bar(x,z);
This results in the bar plot on top of the line. So I tried:
uistack(bar1,'bottom')
Which gives me the error:
Children may only be set to a permutation of itself
The issue seems to be that they are not plotted on the same axis. Because if I omit the line "yyaxis right" (so that the line and bar plot both use the left y-axis, then uistack(bar1,'bottom') works correctly.
Is there any way to specify which y-axis is on top? I tried to accomplish this using the following code, which did not work:
yyaxis right
axes2 = gca;
uistack(axes2,'bottom');
This did not return an error, but it also did not work.

Antworten (2)

Ankitha Kollegal Arjun
Ankitha Kollegal Arjun am 18 Apr. 2017
The issue seems to be with the 'yyaxis' command.
A possible workaround for this is using 'plotyy' instead of 'yyaxis'. However, please note that 'plotyy' will be deprecated soon. For the time being, this workaround should suffice.
Here is a sample code:
x=1:10;
y=x.^2;
z=x;
p = plotyy(x,y,x,z,'plot','bar');
line1 = p(1);
bar1 = p(2);
uistack(bar1,'bottom')
  4 Kommentare
Adam Danz
Adam Danz am 14 Nov. 2019
Just a few corrections to the demo.
  1. p (the 1st output to plotyy) is the 2 axis handles. To get the line object handes, use the 2nd and 3rd outputs.
  2. The demo is correct to change the stack of the axes but axis 2 (on top by default) is transparent while axis 1 has a white background by default. So, after the stack change, you will not see axis 2 unless you change the transparency of axis 1.
A demo of this is provided here:
Arthur Vieira
Arthur Vieira am 5 Mai 2021
+1 Indeed the right axis is usually of less importance and would sit better in the back. For now I will edit the *.svg later, before publishing the figures I'm producing.

Melden Sie sich an, um zu kommentieren.


Thomas Speh
Thomas Speh am 17 Jul. 2018
No i don't think so.

Kategorien

Mehr zu Two y-axis finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by