Plot order with two Y-axes?

40 visualizaciones (últimos 30 días)
peaksix
peaksix el 14 de Abr. de 2017
Comentada: Arthur Vieira el 5 de Mayo de 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.

Respuestas (2)

Ankitha Kollegal Arjun
Ankitha Kollegal Arjun el 18 de Abr. de 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 comentarios
Adam Danz
Adam Danz el 14 de Nov. de 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 el 5 de Mayo de 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.

Iniciar sesión para comentar.


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

Categorías

Más información sobre Two y-axis en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by