在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(),但没有成功....
答案 0 :(得分: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
然后,您可以添加绘制迹线的前导点。