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

2 次查看(过去 30 天)
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.

采纳的回答

Walter Roberson
Walter Roberson 2012-9-25
The difficulty you are encountering is that "hold on" applies to the current axes, not to all axes.
  4 个评论
Tim Mottram
Tim Mottram 2012-9-26
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. :)

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Annotations 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by