效果如下:
示例代碼:
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 固定坐標軸!