How to animate different plots at the same time?
27 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
I am wondering if there's a way to animate two different figures (Figure 1 and figure 2 For example) at the same time. I know the addpoints and drawnow command can animate plots, but they seem to be working smooth only in the same figure (subplots animated at the same time is achievable using addpoints or even just using plot, with a for loop to plot one point on each subplot at a time).
But, how do you animate two different figures (that is, in two different program windows) together without having to constantly switch current figure? If you don't switch current figure, none of the addpoints/plot commands would draw data points on the other figure. But if you do switch current figure and switch back frequently in a for loop, you'll see the edge of the figure windows flickering/flashing because of changing window focus, which is annoying. Is there a way to have two different figures do their animation at the same time without switching focus between them constantly?
0 commentaires
Réponse acceptée
Geoff Hayes
le 2 Juil 2017
Tong - don't switch to the current figure, but rather use the handle to the figure (if needed) or (better) the handle to the axes or (even better) the handle to the graphics object that you want to update. Then you don't have to explicitly set focus to the "current figure" in order to update its axes.
For example,
hFig1 = figure;
hAxes1 = gca;
hPlot1 = plot(NaN,NaN);
hFig2 = figure;
hAxes2 = gca;
hPlot2 = plot(NaN,NaN);
for k=1:40
xdata = get(hPlot1,'XData');
ydata = get(hPlot1,'YData');
set(hPlot1,'XData',[xdata k],'YData',[ydata randi(255,1,1)]);
xdata = get(hPlot2,'XData');
ydata = get(hPlot2,'YData');
set(hPlot2,'XData',[xdata k],'YData',[ydata randi(255,1,1)]);
pause(0.5);
end
2 commentaires
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Animation dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!