2010-11-06 3 views
1

в matlab вы можете покрасить область между двумя строками, напечатанными на участке. Следующий код печатает динамический график.живопись области динамические линии участок

figure('doublebuffer','on') 
t=0; 
r=32; 
g=32 
axes('xlim',[0 24], ... 
    'nextplot','add') 
p1=plot(t,r,'r','LineWidth',2); 
p2=plot(t,r,'b.','MarkerSize',15); 
p3=plot(t,g,'b','LineWidth',2); 
p4=plot(t,g,'g.','MarkerSize',15); 
for t=1:24 
ylim('auto') 
r=abs(22*(rand(1,1)+1)); 
g=abs(8*(rand(1,1)+1)) 
set(p1,'xdata',[get(p1,'xdata') t],... 
    'ydata',[get(p1,'ydata') r]) 
set(p2,'xdata',t,... 
    'ydata',r) 
set(p3,'xdata',[get(p3,'xdata') t],... 
    'ydata',[get(p3,'ydata') g]) 
set(p4,'xdata',t,... 
    'ydata',g) 
pause(0.5) 
end 

Что мне было интересно, если бы вы могли окрасить область между двумя линиями, которые динамически участок (в настоящее время белый цвет, но мне интересно, если вы можете изменить цвет области) я бы поставил образец, но У меня достаточно очков. Также мне было интересно, можно ли сгладить всплески на графике, когда есть широкие вариации.

Заранее благодарим за помощь. Надеюсь, я ясно объяснил. Я попытался использовать команду area(), но без успеха ....

ответ

1

Что касается заполнения цветом между двумя линиями, вы можете использовать функцию FILL. Вот модификация вашего примера, показывающий, как вы можете это сделать:

t = 0:24;    %# t values 
r = [32 zeros(1,24)]; %# Initialize r values 
g = [32 zeros(1,24)]; %# Initialize g values 
hFill = fill([t(1) t(1)],[r(1) g(1)],'r'); %# Fill between r and g with red 
for iPoint = 2:length(t) 
    r(iPoint) = 22*(rand+1); %# Add a value to r 
    g(iPoint) = 8*(rand+1); %# Add a value to g 
    set(hFill,'XData',[t(1:iPoint) t(iPoint:-1:1)],... %# Update x data 
      'YData',[r(1:iPoint) g(iPoint:-1:1)]); %# Update y data 
    pause(0.5); 
end 

Вы можете добавить в ваш черчения ведущих точек для следов.

+0

большое спасибо, я видел, что команда заполнена, но я не смог сделать ее эффективной в цикле. Мы благодарны за помощь – Marietto85

Смежные вопросы