필터 지우기
필터 지우기

How can i draw two animated plots on each subplots at the same time?

조회 수: 65 (최근 30일)
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

채택된 답변

Jos (10584)
Jos (10584) 2017년 12월 15일
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
Jos (10584)
Jos (10584) 2017년 12월 15일
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.
Le Dung
Le Dung 2017년 12월 15일
It is very kind of you. Thank you so much. And, you can help me to my question on this link: https://www.mathworks.com/matlabcentral/answers/373112-how-can-i-specify-which-subplot-that-i-want-to-plot-on-it

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

Riccardo Rosati
Riccardo Rosati 2018년 6월 4일
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.

카테고리

Help CenterFile Exchange에서 Animation에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by