diff scripts/plot/polar.m @ 7321:359f464342b3

[project @ 2007-12-18 03:48:03 by jwe]
author jwe
date Tue, 18 Dec 2007 03:48:04 +0000
parents 5389a52df87b
children 1aeb39118764
line wrap: on
line diff
--- a/scripts/plot/polar.m
+++ b/scripts/plot/polar.m
@@ -30,34 +30,48 @@
 
 function retval = polar (varargin)
 
-  [h, varargin] = __plt_get_axis_arg__ ("polar", varargin{:});
+  [h, varargin, nargs] = __plt_get_axis_arg__ ("polar", varargin{:});
 
   oldh = gca ();
   unwind_protect
     axes (h);
     newplot ();
 
-    nargs = numel (varargin);
-
     if (nargs == 3)
       if (! ischar (varargin{3}))
 	error ("polar: third argument must be a string");
       endif
       tmp = __plr2__ (h, varargin{:});
-    elseif (nargin == 2)
+      maxr = max (varargin {2} (:));
+    elseif (nargs == 2)
       if (ischar (varargin{2}))
 	tmp = __plr1__ (h, varargin{:});
+	if (iscomplex(varargin{1}))
+	  maxr = max (imag(varargin{1})(:));
+	else
+	  maxr = max (varargin{1}(:));
+	endif
       else
 	fmt = "";
 	tmp = __plr2__ (h, varargin{:}, fmt);
+	maxr = max (varargin {2} (:));
       endif
-    elseif (nargin == 1)
+    elseif (nargs == 1)
       fmt = "";
       tmp = __plr1__ (h, varargin{:}, fmt);
+      if (iscomplex(varargin{1}))
+	maxr = max (imag(varargin{1})(:));
+      else
+	maxr = max (varargin{1}(:));
+      endif
     else
       print_usage ();
     endif
 
+    set (h, "xlim", [-maxr, maxr], "ylim", [-maxr, maxr],
+	 "xaxislocation", "zero", "yaxislocation", "zero",
+	 "dataaspectratio", [1, 1, 1]); 
+
     if (nargout > 0)
       retval = tmp;
     endif