- the optional handle input, and
- specify the data and options using Property+Value pairs.
Figure visibility changes upon axes call
10 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Thomas Pfau
am 18 Sep. 2014
Bearbeitet: Stephen23
am 18 Sep. 2014
Hi,
I have the following issue: I would like to create figures and keep them invisible. However when changing the current axis withhin my figures the visibility changes. Here is a small example showing what I mean:
f = figure('visible','off');
ax = axes;
set(ax,'Position',[0 0 1 1]);
axis manual
axis off
ax2 = axes;
plot(1:2,1:2);
axes(ax);
the last call to reset the current axes to the old axes object makes the whole figure become visible. I can reset this by resetting the visible property. But there will still be a short fraction of time, when the figure becomes visible, something I would like to avoid.
Anyone got an idea what could be causing this and how it could be avoided?
1 Kommentar
Stephen23
am 18 Sep. 2014
Bearbeitet: Stephen23
am 18 Sep. 2014
The behavior of figure, axes, plot, etc, is usually much more predictable if you use:
It takes a bit more writing (and learning), but it tends to remove most of these (perhaps unwanted) higher-level behaviors. For example in your code, simply replace
ax = axes;
set(ax,'Position',[0 0 1 1]);
with
ax = axes('Position',[0 0 1 1]);
Also note that plot creates its own axes, if need be.
Akzeptierte Antwort
Stephen23
am 18 Sep. 2014
According to the axes help, the syntax axes(h) "makes existing axes h the current axes and brings the figure containing it into focus". I guess "into focus" includes being visible...
The help gives this example " to make an axes the current axes without changing the state of the parent figure", instead of
axes(axes_handle)
you should use
set(figure_handle,'CurrentAxes',axes_handle)
Weitere Antworten (1)
Adam
am 18 Sep. 2014
axes(ax) brings the figure containing the axes into focus so I guess that includes making it visible too.
Why do you need to call
axes(ax)
though? I used to do that a lot, but now I tend to avoid ever doing it because I don't like having the focus changed in that way.
If you want to plot on a specific axes you can just use:
plot( ax, ... )
0 Kommentare
Siehe auch
Kategorien
Mehr zu Graphics Object Properties finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!