selective hold on plot
15 次查看(过去 30 天)
显示 更早的评论
Hi,
I am doing lot of plots on a single figure and i want to hold on the selective plots and NOT all of plots. With MATLAB hold 'on' , it will make hold on all or none. Any work around?
Thanks,
1 个评论
Adam
2019-3-4
Just keep the handles to each plot and delete them as appropriate yourself when conditions define that they should be removed.
回答(2 个)
Star Strider
2019-3-1
It depends on what you want to do, of course.
One option is to simply put a condition on the hold call:
for k = 1:4
subplot(2,2,k)
plot(rand(1,10), rand(1,10), 'pb')
if rem(k,2) == 1
hold on
end
plot(rand(1,10)+1, rand(1,10)+1, 'pg')
hold off
end
I assume you are doing subplot calls or something similar.
Steven Lord
2019-3-4
What do you mean when you say you want to '"hold on" to y1'? Do you want to do something like a zero order hold on the data? Or do you just want to skip the updating step for that particular curve?
Perhaps using animatedline objects would work. If a condition is met, just stop calling addpoints for that particular animatedline while the condition is satisfied. For example, adapting the example from the animatedline help text:
numpoints = 100000;
x = linspace(0,4*pi,numpoints);
y = sin(x);
figure
h = animatedline;
axis([0,4*pi,-1,1])
for k = 1:numpoints
% Skip y coordinates outside [-0.5, 0.5]
if abs(y(k)) <= 0.5
addpoints(h,x(k),y(k))
end
drawnow update
end
If you wanted the curve to continue drawing straight across the lines y = 0.5 and y = -0.5, you could use min and max to saturate the data to those bounds.
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Annotations 的更多信息
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!