Plot order with two Y-axes?

33 次查看(过去 30 天)
peaksix
peaksix 2017-4-14
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.

回答(2 个)

Ankitha Kollegal Arjun
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 个评论
Adam Danz
Adam Danz 2019-11-14
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 2021-5-5
+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.

请先登录,再进行评论。


Thomas Speh
Thomas Speh 2018-7-17
No i don't think so.

类别

Help CenterFile Exchange 中查找有关 Two y-axis 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by