效果如下:
示例代码:
figure(\'Color\',\'w\'); h1 = animatedline; h1.Color = \'r\'; h1.LineWidth = 1.0; h1.LineStyle = \'-.\'; h2 = animatedline; h2.Color = \'b\'; h2.LineWidth = 1.0; h2.LineStyle = \'-\'; axis([0,4*pi,-1,1]) x = linspace(0,4*pi,1000); y1 = sin(x); y2 = cos(x); for k = 1:length(x) addpoints(h1,x(k),y1(k)); addpoints(h2,x(k),y2(k)); drawnow; end
要点:
- Matlab提供了绘制动态曲线的专用对象 animatedline,和该对象的专用方法 addpoints。通过 addpoints 和 drawnow 在循环中对 animatedline 对象的不断赋值和打印,就可以绘制出动态曲线。
- animatedline 对象在声明的时候,可以是没有数据点的空曲线,也可以是有若干初始点的曲线。如果 animatedline 对象有初始点,在声明的时候会直接在 Figure 中绘制出来。如果想要让曲线从虚空中来,那么示例中 “先声明空曲线,再逐点赋值” 的操作是需要掌握的。
- animatedline 对象拥有 Line 的各类属性。
- 如果没有提前创建一个 Figure,在绘制 animatedline 对象的时候,会自动创建一个默认的 Figure。所以如果想要对 Figure 的属性进行调整,请在声明 animatedline 对象之前自定义一个 Figure。
- 最后,一个重要的细节:请使用 axis 固定坐标轴!