Stacking order of figures
    14 次查看(过去 30 天)
  
       显示 更早的评论
    
Suppose I create three figures
for ni = 1:3
    figure
    plot(rand(7))
    drawnow
end
These will be drawn with Figure 1 on the bottom, Figure 2 in the middle, and Figure 3 on top, remaining viewable at the end.
How can change the stacking order? Prior to 2014b, one could sort the Children of the root object numerically, but I can't figure out how to do it in 2014b.
0 个评论
回答(1 个)
  Doug Hull
      
 2014-11-18
        Maybe I am misunderstanding the question:
close all
for ni = 1:3
    figure
    plot(rand(7))
    drawnow
end
uistack(2,'top')
uistack(1,'top')
4 个评论
  men8th
      
 2023-2-8
				
      编辑:men8th
      
 2023-2-8
  
			An explicit version of the above command, which doesn't rely on casting a figure handle to double returning the figure number is:
set(groot,'Children',sort([get(groot,'Children').Number]))
This also uses groot to point to the graphics root object, rather than the magic number 0.
From reading the documentation, This will only find and re-order figures with visible handles. To work with all figures, you need to use findall.
另请参阅
类别
				在 Help Center 和 File Exchange 中查找有关 Creating, Deleting, and Querying Graphics Objects 的更多信息
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!



