MATLAB Answers

0

How to hold on with visible off for plots

Asked by ubaid haroon on 27 Dec 2017
Latest activity Commented on by dpb
on 27 Dec 2017
I am running a loop iloop = 1:23 and plotting data 23 times on a scatter plot. This job is currently running on a cluster so I can't have the gui open and I have set figure('Visible','off'). When I use this with 'hold on' only the last iteration of loop is plotted. How can I keep my figure visible but still retain the hold for 1:23?

  5 Comments

Note: figure is plotted correctly if i set figure('name',Visible','on')
I was able to make this work by running multiple loops for each plot i was making.
dpb
on 27 Dec 2017
More than likely your problems stem from the following code snippet...
for i = 1:23
..........
fig1 = figure('name','NameOfFigure','Visible','off')
The above creates 23 different figures but uses the same variable has the handle for each. And, each call to scatter will thus plot into a new gca which will be the axes object of the lastest figure created. And, subsequently, when you use fig1 as the handle to the figure, you get only the last one; you've overwritten the variable for the previous 22 that are still there, just not visible.

Sign in to comment.

0 Answers