Using a second call to copyobj is not working

7 views (last 30 days)
Bill
Bill on 11 May 2018
Commented: Bill on 11 May 2018
I'm copying the left axis of a plot over to its right side, making a change to the left axis, and then trying to recopy those changes over to the right side. But I can't get the right axis to clear before copying the new changes over. I've tried clearing the right axis, and also setting the Cax.Right.YTick and Cax.Right.YTickLabel directly, but none of those attempts worked. Thanks!
x=1:10;
y=1:10;
plot(x,y)
Cax.Left = gca;
Cax.Right = copyobj(Cax.Left, gcf);
Cax.Right.YAxisLocation = 'Right';
Cax.Left.YLim = [0,20];
Cax.Right = copyobj(Cax.Left, gcf);
Cax.Right.YAxisLocation = 'Right';
  2 Comments
Bill
Bill on 11 May 2018
Hi Jan. That's a fair critique of the title of my question, although I did try to be more detailed in the actual question. Nevertheless I wanted to thank you because your comment helped me solve the issue. Putting in the line of code:
delete(Figure.Children(2));
prior to calling copyobj the second time worked. So, thanks!.. - Bill

Sign in to comment.

Answers (1)

Steven Lord
Steven Lord on 11 May 2018
If you want an axes with rulers on both the left and right, you should use yyaxis. If you're using a release that predates the introduction of yyaxis in release R2016a, use plotyy.

Tags

Products


Release

R2018a

Community Treasure Hunt

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

Start Hunting!