Displaying the order of objects on an axis
7 views (last 30 days)
I have a matrix that I am making a surface plot of and then trying to overlay a rectangle on top of it. I can not get the rectangle to be displayed on top of the surface.
% I have tried to flip the children objects of the current axes but they did not work. I also tried uistack
% Is there something about a surface object that prevents anything from being rendered on top of it?
Chris McComb on 5 Mar 2015
Edited: Chris McComb on 5 Mar 2015
You're having this problem because the rectangle command draws the object in the xy plane, with z=0. Therefore, since I'm guessing your surface has z > 0, the rectangle necessarily falls underneath it.
What if you did something like this?
% Plot surface
h1 = surface(M);
% Max height in surface
max_surf = max(M(:));
% Make a patch instead of rectangle
h2 = patch([0 3 3 0], [0 0 3 3], max_surf*ones(1,4), 'r');