Do figures have to be active to add plots to them?

2 views (last 30 days)
Hi Guys, This is the situation, I create 4 fill plots using and return there respective axis handles using:
figure('OuterPosition',[1 scrsz(4)/2 scrsz(3)/2 scrsz(4)/2])
SpecH = myFill(f1,specMat,'Frequency Spectrum');
figure('OuterPosition',[scrsz(3)/2 scrsz(4)/2 scrsz(3)/2 scrsz(4)/2])
AvgH = myFill(f2,bandAVGsMat,'Band Average');
figure('OuterPosition',[1 scrsz(4)/36 scrsz(3)/2 scrsz(4)/2])
VarH = myFill(f2,bandVarsMat,'Band Variance');
figure('OuterPosition',[scrsz(3)/2 scrsz(4)/36 scrsz(3)/2 scrsz(4)/2])
PwrH = myFill(f2,pwr2ResMat,'Band Power ratio to the fundermental');
I then wish to put a new line on each fill plot as I pass through a loop. I do this using:
hold on
plot(SpecH,f1,dataStoreT(i,:),'g','LineWidth',2)
plot(AvgH,f2,bandAVGsT,'g','LineWidth',2)
plot(VarH,f2,bandVarsT,'g','LineWidth',2)
plot(PwrH,f2,pwr2ResT,'g','LineWidth',2)
hold off
When I run this; one of the plots, the one which is currently active, adds the line no problem. BUT the other three clear the "fill" type plots and just plot the line. I have noticed that this clearing of the old lines only happens to the plots which are not active (and also the active plot seems to always be the second to last one plotted?!..)
So my question is: How do I activate a plot before adding the line and is this necessary or is there some workaround?
Thanks in advance.
Kind Regards,
Tim.

Accepted Answer

Walter Roberson
Walter Roberson on 25 Sep 2012
The difficulty you are encountering is that "hold on" applies to the current axes, not to all axes.
  4 Comments
Tim Mottram
Tim Mottram on 26 Sep 2012
I see, so I was making the simple hold on command work by activating each figure in turn, where as I could have used:
hold(axisHandle,'on')
Instead. Thanks for your help. :)

Sign in to comment.

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!