How can i draw two animated plots on each subplots at the same time?
    25 visualizaciones (últimos 30 días)
  
       Mostrar comentarios más antiguos
    
    Le Dung
 el 15 de Dic. de 2017
  
    
    
    
    
    Respondida: Riccardo Rosati
 el 4 de Jun. de 2018
            Hi everyone! Now, i want to draw two animated plots on each subplots at the same time. You can see my code below. But, when i use this code, of course, Matlab will return two subplots and it will draw "k" line after drew "r" line. So, how can i do to draw two animated plots (in this case is two lines) at the same time? Thank you so much. My code:
x1=linspace(0,20,201);
y1=sin(x1);
x2=linspace(0,20,201);
y2=cos(x2);
sub1=subplot(2,1,1);
hold on
axis([0 21 -1.1 1.1]); 
ani1=animatedline('Color','r');
for i=1:length(x1)
    addpoints(ani1,x1(i),y1(i));
    drawnow
    pause(0.01);
end
subplot(2,1,2)
hold on
axis([0 21 -1.1 1.1]); 
ani2=animatedline('Color','k');
for j=1:length(x1)
    addpoints(ani2,x1(j),y1(j))
    drawnow
    pause(0.01);
end
0 comentarios
Respuesta aceptada
  Jos (10584)
      
      
 el 15 de Dic. de 2017
        Merge the for-loops! This works here because x1,y1, x2, and y2 are all the same length. There is also no need for hold on)
x1=linspace(0,20,201);
y1=sin(x1);
x2=linspace(0,20,201);
y2=cos(x2);
sub1=subplot(2,1,1);
axis([0 21 -1.1 1.1]); 
ani1=animatedline('Color','r');
subplot(2,1,2)
axis([0 21 -1.1 1.1]); 
ani2=animatedline('Color','k');
for k=1:length(x1)
    addpoints(ani1,x1(k),y1(k)) ;
    addpoints(ani2,x2(k),y2(k)) ;% I assume you meant to plot (x2,y2)
    drawnow
    pause(0.01);
end
3 comentarios
  Jos (10584)
      
      
 el 15 de Dic. de 2017
				I assume there is a relationship between x1 and x2? For instance, both are time points. You can use interp1 to get, for instance, y2 values for each point in x1, like this:
x1 = linspace(0,20,200)
y1 = sin(x1) ;
x2 = linspace(0,20,100)
y2 = cos(x2) ;
y2_int = interp1(x2,y2,x1) ;
and now use x1 as the x coordinate for both animations.
Más respuestas (1)
  Riccardo Rosati
 el 4 de Jun. de 2018
        If I create the number of subplot iteratively (because this is for a GUI where I manually insert the number of signals that I want to plot), how can I do this? I should generate iteratively also the animated lines, but how?
Thanks in advance for the reply.
0 comentarios
Ver también
Categorías
				Más información sobre Animation 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!


