MATLAB Answers

Call to Subplot is Adding Axis to Current Figure

20 views (last 30 days)
Shawn Treacy
Shawn Treacy on 5 Apr 2019
Commented: Shawn Treacy on 10 Apr 2019
I'm creating a figure and then later adding a subplot to it. When I get the axis handle from the call to subplot, it is adding an axis to what I think is the current figure.
%pre-allocate graphics objects for holding figures
figs = gobjects(2,1);
%create figures and store in variable figs
for i1 = 1:length(figs)
figs(i1) = figure;
%create the upper axis of a 2x1 subplot and get the handle
%this call is also adding an axis to figs(2) for some reason
ax = subplot(2,1,1,'Parent',figs(1))
If I add a call to
just before
ax = subplot(2,1,1,'Parent',figs(1))
then it won't create an axis on the second figure. Can anyone explain this phenomenon? Is there a better solution than my workaround of having to set the current figure before any of these calls?


Show 1 older comment
Shawn Treacy
Shawn Treacy on 5 Apr 2019
I'm using 2019a. What are you using?
EDIT: Can you please stop editing that comment instead of creating a chain? It makes for some goofy looking responses.
A. Sawas
A. Sawas on 6 Apr 2019
I did not get this problem ... I am using 2018b
Shawn Treacy
Shawn Treacy on 10 Apr 2019
That's strange. I don't have 2018b to test, but I checked it on 2018a and 2019a and have the same issue.
I wonder if it could be related to some startup code that I added to get the zoom/pan/etc... functions back on the toolbar.
I'm wondering if that second call is the problem.

Sign in to comment.

Accepted Answer

Adam on 10 Apr 2019
Yes, that does seem a slightly odd thing to have in the startup file and is indeed the cause of this behaviour (I just tested with and without it).
I have the first line in my startup file also, but not the second line.
Try replacing that line with the following in your startup instead:


Shawn Treacy
Shawn Treacy on 10 Apr 2019
That's great. It addresses the problems that come from uses gcf and gca. The better startup commands seem to be:

Sign in to comment.

More Answers (0)

Sign in to answer this question.