Multiple Figure Window Order
10 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Hello all,
I'm looking for the ability to open new figures behind current figures. For example, if I have 20 figures to open then figure 1 would appear in front, and then figure 2 would plot behind figure 1 such that I could still view figure 1. Figure 3 would then plot behind figure 2 and so on. Is there a way to accomplish this?
trevor
0 comentarios
Respuestas (5)
Mark Brandon
el 14 de Sept. de 2011
Hi J. I use this rather nice function called cyclefigs written by Peter Acklam
Actually maybe you want sortfigs.
I have found many of his utils very very useful
They can be found here
Hope that works for you.
2 comentarios
Mark Brandon
el 14 de Sept. de 2011
Yup that is more complex. descriptive is always better to get a clearer answer, see below for example.
Jan
el 14 de Sept. de 2011
You can create the set of figures at first and draw to them starting from the last one:
nFig = 16;
FigH = zeros(1, nFig);
for i = 1:nFig
FigH(i) = figure('NextPlot', 'add'); % NextPlot might be useful
end
for i = nFig:-1:1
AxesH = axes('Parent', FigH(i), 'NextPlot', 'add');
line(1:100, rand(10, 100), 'Parent', AxesH);
end
Now you see the diagram on the topmost figure, which has been created at last. The next diagram is on figure under it etc.
0 comentarios
Daniel Shub
el 14 de Sept. de 2011
You can reverse the order by setting the "children" property of the root:
set(0, 'Children', flipud(get(0, 'Children')))
you might want to move the first item to the last item after every figure call:
figure;
x = get(0, 'Children');
set(0, 'Children', [x(2:end); x(1)])
0 comentarios
Daniel Shub
el 14 de Sept. de 2011
What do you do with figure 1, when you move on to figure 2? Do you close it, minimize it or move it? If you close it, you can do the following.
figure('Visible', 'Off', 'CloseRequestFcn', 'set(gcf+1, ''Visible'', ''On''); delete(gcf-1);');
For the first figure you need to then do
set(1, 'Visible', 'On');
3 comentarios
Daniel Shub
el 14 de Sept. de 2011
I think from your comments that you think this approach might work, but that you want to handle minimization. You can probably get this functionality from the underlying java object. I would suggest, however, you consider building a simple GUI with two figures. One figure contains N maximized axes with each axes having the data from a single channel. The visibility of theses axes could be controlled by the second figure that has a single slider. The slider position controls which channel axis is visible.
Ver también
Categorías
Más información sobre Graphics Object Properties en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!