Mercurial > hg > octave-nkf
comparison scripts/plot/comet.m @ 11378:a0278a856516
comet: if axes are specified, switch temporarily
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Fri, 17 Dec 2010 14:08:36 -0500 |
parents | 2c356a35d7f5 |
children | d27008c32e0d |
comparison
equal
deleted
inserted
replaced
11377:473e4adaa5a2 | 11378:a0278a856516 |
---|---|
36 ## Author: Ben Abbott bpabbott@mac.com | 36 ## Author: Ben Abbott bpabbott@mac.com |
37 ## Created: 2008-09-21 | 37 ## Created: 2008-09-21 |
38 | 38 |
39 function comet (varargin) | 39 function comet (varargin) |
40 | 40 |
41 [h, varargin, nargin] = __plt_get_axis_arg__ ("compass", varargin{:}); | |
42 | |
41 if (nargin == 0) | 43 if (nargin == 0) |
42 print_usage (); | 44 print_usage (); |
43 elseif (numel (varargin{1}) == 1 && ishandle (varargin{1}) | 45 elseif (nargin == 1) |
44 && strcmpi (get (varargin{1}, "type"), "axes")) | |
45 axes (varargin{1}); | |
46 varargin = varargin(2:end); | |
47 numargin = nargin - 1; | |
48 else | |
49 numargin = nargin; | |
50 endif | |
51 | |
52 p = 0.1; | |
53 if (numargin == 1) | |
54 y = varargin{1}; | 46 y = varargin{1}; |
55 x = 1:numel(y); | 47 x = 1:numel(y); |
56 elseif (numargin == 2) | 48 p = 0.1; |
49 elseif (nargin == 2) | |
57 x = varargin{1}; | 50 x = varargin{1}; |
58 y = varargin{2}; | 51 y = varargin{2}; |
59 elseif (numargin == 3) | 52 p = 0.1; |
53 elseif (nargin == 3) | |
60 x = varargin{1}; | 54 x = varargin{1}; |
61 y = varargin{2}; | 55 y = varargin{2}; |
62 p = varargin{3}; | 56 p = varargin{3}; |
63 else | |
64 print_usage (); | |
65 endif | 57 endif |
66 | 58 |
67 theaxis = [min(x), max(x), min(y), max(y)]; | 59 oldh = gca (); |
68 num = numel (y); | 60 unwind_protect |
69 dn = round (num/10); | 61 axes (h); |
70 for n = 1:(num+dn); | 62 newplot (); |
71 m = n - dn; | 63 theaxis = [min(x), max(x), min(y), max(y)]; |
72 m = max ([m, 1]); | 64 num = numel (y); |
73 k = min ([n, num]); | 65 dn = round (num/10); |
74 h = plot (x(1:m), y(1:m), "r", x(m:k), y(m:k), "g", x(k), y(k), "ob"); | 66 for n = 1:(num+dn); |
75 axis (theaxis); | 67 m = n - dn; |
76 drawnow (); | 68 m = max ([m, 1]); |
77 pause (p); | 69 k = min ([n, num]); |
78 endfor | 70 h = plot (x(1:m), y(1:m), "r", x(m:k), y(m:k), "g", x(k), y(k), "ob"); |
71 axis (theaxis); | |
72 drawnow (); | |
73 pause (p); | |
74 endfor | |
75 unwind_protect_cleanup | |
76 axes (oldh); | |
77 end_unwind_protect | |
79 | 78 |
80 endfunction | 79 endfunction |
81 | 80 |
82 %!demo | 81 %!demo |
83 %! clf | 82 %! clf |