delete a subplot and renew plot
10 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Hi guys,
i am trying to update my subplot in a for loop, like;
fig1=figure;
for i=1:10
axes1 = axes('Parent',fig1, 'Position',[0.043 0.77 0.43 0.15]); box(axes1,'on'); hold(axes1,'all');
plot(rand(1,100),'Parent',axes1)
end
it works! and for each run i have a new graph. BUT, it has one problem; overlapping subplot box.
what should i do, to avoid this overlapping
5 comentarios
dpb
el 17 de Jun. de 2014
Actually, the one problem of multiple handles does go away with subplot for overlapping calls--it has the smarts internally to make the existing the current--but so does just the syntax
subplot(N,M,i)
It would still be much simpler to retain the handle that corresponds to each when creating them (or not save any handles at all) rather than have the same variable refer to a bunch of different axes depending...
As for updating once you've created an axes object, the use of set for [x|y]data is far more efficient as Kevin noted.
Respuestas (1)
Kevin Claytor
el 16 de Jun. de 2014
Better yet, update using handles:
figure;
f = 2*pi;
x = linspace(1,100);
y = sin(x/f);
subplot(2,2,1)
plot(x,y);
title('Initial')
subplot(2,2,4);
title('Over Time')
h = plot(x,y);
for ii = 1:1000
newy = sin(1/f*(x - ii/pi));
% update using the handle to the graphics object
set(h,'ydata',newy);
pause(.1)
end
Ver también
Categorías
Más información sobre Subplots en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!