1 |
function h=stickplot(t,u,v,ax,varargin) |
---|
2 |
%STICKPLOT plot timeseries of a vector |
---|
3 |
% STICKPLOT plots a timeseries of direction vectors on the |
---|
4 |
% current axes. |
---|
5 |
% |
---|
6 |
% Input: time - time vector |
---|
7 |
% u - east/west component of the vector series |
---|
8 |
% v - north/south component of the vector series |
---|
9 |
% ax - a 4x1 vector indicating the region of the |
---|
10 |
% time series to zoom in on. This is necessary |
---|
11 |
% for the proper scaling of the direction and |
---|
12 |
% magnitude of the vectors. |
---|
13 |
% Output: h - handle to the line object drawn |
---|
14 |
% |
---|
15 |
% NOTE: do not resize the window or axes AFTER STICKPLOT |
---|
16 |
% has drawn the vectors. The east/west north/south |
---|
17 |
% magnitudes will no longer be scaled correctly. |
---|
18 |
% |
---|
19 |
% PN/PV pairs accepted by STICKPLOT: |
---|
20 |
% Voffset - amount to displace the stickplot vertically |
---|
21 |
% |
---|
22 |
|
---|
23 |
% |
---|
24 |
% Written by : Brian O. Blanton |
---|
25 |
% Fall 1997 |
---|
26 |
% Fall 2002: added varargins |
---|
27 |
|
---|
28 |
if nargin==0,disp('Call as: hv=stickplot(time,u,v,ax,pn1,pv1,...)');return;end |
---|
29 |
|
---|
30 |
% Default propertyname values |
---|
31 |
Voffset=0.; |
---|
32 |
% Strip off propertyname/value pairs in varargin not related to |
---|
33 |
% "line" object properties. |
---|
34 |
k=1; |
---|
35 |
while k<length(varargin), |
---|
36 |
switch lower(varargin{k}), |
---|
37 |
case 'voffset', |
---|
38 |
Voffset=varargin{k+1}; |
---|
39 |
varargin([k k+1])=[]; |
---|
40 |
otherwise |
---|
41 |
k=k+2; |
---|
42 |
end |
---|
43 |
end |
---|
44 |
|
---|
45 |
axis(ax); |
---|
46 |
pos = get(gca,'Position'); |
---|
47 |
pap = get(gcf,'PaperPosition'); |
---|
48 |
hwratio = (pos(4)*pap(4))/(pos(3)*pap(3)); |
---|
49 |
|
---|
50 |
dt = ax(2)-ax(1); |
---|
51 |
dv = ax(4)-ax(3); |
---|
52 |
sf = hwratio*dt/dv; |
---|
53 |
s = [0; 1; 0]; |
---|
54 |
n = length(t); |
---|
55 |
us = u*sf; |
---|
56 |
vec = zeros( n*3, 2 ); |
---|
57 |
id = (1:3'); |
---|
58 |
for i=1:n |
---|
59 |
vec(id,:) = s*[us(i), v(i)]; |
---|
60 |
vec(id,1) = vec(id,1)+ones(3,1)*t(i); |
---|
61 |
id = id+3; |
---|
62 |
end |
---|
63 |
|
---|
64 |
h=line(vec(:,1),vec(:,2)+Voffset,varargin{:}); |
---|
65 |
if nargout==1,hstick=h;,end |
---|
66 |
axis(ax) |
---|
67 |
|
---|
68 |
% |
---|
69 |
% Brian O. Blanton |
---|
70 |
% Department of Marine Sciences |
---|
71 |
% 12-7 Venable Hall |
---|
72 |
% CB# 3300 |
---|
73 |
% University of North Carolina |
---|
74 |
% Chapel Hill, NC |
---|
75 |
% 27599-3300 |
---|
76 |
% |
---|
77 |
% brian_blanton@unc.edu |
---|
78 |
% |
---|
79 |
% Fall 2002 |
---|