changeset 4019:c6d7ae9fcdb9

[project @ 2002-08-05 16:42:36 by jwe]
author jwe
date Mon, 05 Aug 2002 16:42:36 +0000
parents a8621d87fbf5
children ca18dc3d5596
files scripts/plot/__errcomm__.m scripts/plot/loglogerr.m scripts/plot/semilogxerr.m scripts/plot/semilogyerr.m
diffstat 4 files changed, 271 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scripts/plot/__errcomm__.m	Mon Aug 05 16:42:36 2002 +0000
@@ -0,0 +1,103 @@
+## Copyright (C) 2001, 2002 Teemu Ikonen
+##
+## This file is part of Octave.
+##
+## Octave is free software; you can redistribute it and/or modify it
+## under the terms of the GNU General Public License as published by
+## the Free Software Foundation; either version 2, or (at your option)
+## any later version.
+##
+## Octave is distributed in the hope that it will be useful, but
+## WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+## General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with Octave; see the file COPYING.  If not, write to the Free
+## Software Foundation, 59 Temple Place - Suite 330, Boston, MA
+## 02111-1307, USA.
+
+## -*- texinfo -*-
+## @deftypefn {Function File} {} __errcomm__ (@var{args})
+## Common argument handling code for all error plots (errorbar, loglogerr,
+## semilogyerr, semilogxerr).
+##
+## @end deftypefn
+## @seealso{errorbar, semilogxerr, semilogyerr, loglogerr, __pltopt__}
+
+## Created: 20.02.2001
+## Author: Teemu Ikonen <tpikonen@pcu.helsinki.fi>
+## Keywords: errorbar, plotting
+
+function __errcomm__ (caller, varargin)
+
+  if (nargin < 3)
+    usage ("%s (...)", caller);
+  endif
+
+  nargin--;
+  save_hold = ishold;
+  unwind_protect
+    if (! ishold)
+      clg
+    endif
+    hold on;
+    k = 1;
+    while (nargin)
+      a = varargin{k++};
+      nargin--;
+      if (is_vector (a))
+        a = a(:);
+      elseif (is_matrix (a))
+        ;
+      else
+        usage ("%s (...)", caller);
+      endif
+      sz = size (a);
+      ndata = 1;
+      arg1 = a;
+      fmt = " ";
+      while (nargin)
+	nargin--;
+	a = varargin{k++};
+	if (isstr (a))
+	  fmt = a;
+	  cmd = "__errplot__ (arg1";
+	  for i = 2:ndata,
+	    cmd = sprintf ("%s, arg%d", cmd, i);
+	  endfor
+	  eval (sprintf ("%s, fmt);", cmd));
+	  break;
+	elseif (is_vector (a))
+	  a = a(:);
+	elseif (is_matrix (a))
+	  ;
+	else
+	  error ("wrong argument types");
+	endif
+	if (size (a) != sz)
+	  error ("argument sizes do not match");
+	endif
+	ndata++;
+	eval (sprintf ("arg%d = a;", ndata));
+	if (ndata > 6)
+	  error ("too many arguments to a plot");
+	endif
+      endwhile
+    endwhile
+
+    if (! isstr (a))
+      fmt = " ";
+      cmd = "__errplot__ (arg1";
+      for i = 2:ndata,
+	cmd = sprintf ("%s, arg%d", cmd, i);
+      endfor
+      eval (sprintf ("%s, fmt);", cmd));
+    endif
+  unwind_protect_cleanup
+    if (! save_hold)
+      hold off;
+    endif
+  end_unwind_protect
+
+endfunction
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scripts/plot/loglogerr.m	Mon Aug 05 16:42:36 2002 +0000
@@ -0,0 +1,56 @@
+## Copyright (C) 2000, 2001, 2002 Teemu Ikonen
+##
+## This file is part of Octave.
+##
+## Octave is free software; you can redistribute it and/or modify it
+## under the terms of the GNU General Public License as published by
+## the Free Software Foundation; either version 2, or (at your option)
+## any later version.
+##
+## Octave is distributed in the hope that it will be useful, but
+## WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+## General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with Octave; see the file COPYING.  If not, write to the Free
+## Software Foundation, 59 Temple Place - Suite 330, Boston, MA
+## 02111-1307, USA.
+
+## -*- texinfo -*-
+## @deftypefn {Function File} {} loglogerr (@var{args})
+## This function produces two-dimensional plots on double logarithm axis 
+## with errorbars. Many different combinations of arguments are possible.  
+## The most used form is
+##
+## @example
+## loglogerr (@var{x}, @var{y}, @var{ey}, @var{fmt})
+## @end example
+##
+## @noindent
+## which produces a double logarithm plot of @var{y} versus @var{x} 
+## with errors in the @var{y}-scale defined by @var{ey} and the plot
+## format defined by @var{fmt}. See errorbar for available formats and 
+## additional information.
+##
+## @end deftypefn
+## @seealso{errorbar, semilogxerr, semilogyerr, polar, mesh, contour, 
+## __pltopt__, bar, stairs, gplot, gsplot, replot, xlabel, ylabel, and title}
+
+## Created: 20.2.2001
+## Author: Teemu Ikonen <tpikonen@pcu.helsinki.fi>
+## Keywords: errorbar, plotting
+
+function loglogerr (varargin)
+
+  if (nargin < 2)
+    usage ("loglogerr(...)");
+  endif
+
+  gset logscale x;
+  gset logscale y;
+  gset nopolar;
+
+  __errcomm__ ("loglogerr", varargin{:});
+
+endfunction
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scripts/plot/semilogxerr.m	Mon Aug 05 16:42:36 2002 +0000
@@ -0,0 +1,56 @@
+## Copyright (C) 2000, 2001, 2002 Teemu Ikonen
+##
+## This file is part of Octave.
+##
+## Octave is free software; you can redistribute it and/or modify it
+## under the terms of the GNU General Public License as published by
+## the Free Software Foundation; either version 2, or (at your option)
+## any later version.
+##
+## Octave is distributed in the hope that it will be useful, but
+## WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+## General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with Octave; see the file COPYING.  If not, write to the Free
+## Software Foundation, 59 Temple Place - Suite 330, Boston, MA
+## 02111-1307, USA.
+
+## -*- texinfo -*-
+## @deftypefn {Function File} {} semilogxerr (@var{args})
+## This function produces two-dimensional plots on a semilogarithm axis 
+## with errorbars. Many different combinations of arguments are possible.  
+## The most used form is
+##
+## @example
+## semilogxerr (@var{x}, @var{y}, @var{ey}, @var{fmt})
+## @end example
+##
+## @noindent
+## which produces a semi-logarithm plot of @var{y} versus @var{x}
+## with errors in the @var{y}-scale defined by @var{ey} and the plot
+## format defined by @var{fmt}. See errorbar for available formats and 
+## additional information.
+##
+## @end deftypefn
+## @seealso{errorbar, loglogerr semilogyerr, polar, mesh, contour, __pltopt__, 
+## bar, stairs, gplot, gsplot, replot, xlabel, ylabel, and title}
+
+## Created: 20.2.2001
+## Author: Teemu Ikonen <tpikonen@pcu.helsinki.fi>
+## Keywords: errorbar, plotting
+
+function semilogxerr (varargin)
+
+  if (nargin < 2)
+    usage ("semilogxerr (...)");
+  endif
+
+  gset logscale x;
+  gset nologscale y;
+  gset nopolar;
+
+  __errcomm__ ("semilogxerr", varargin{:});
+
+endfunction
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scripts/plot/semilogyerr.m	Mon Aug 05 16:42:36 2002 +0000
@@ -0,0 +1,56 @@
+## Copyright (C) 2000, 2001, 2002 Teemu Ikonen
+##
+## This file is part of Octave.
+##
+## Octave is free software; you can redistribute it and/or modify it
+## under the terms of the GNU General Public License as published by
+## the Free Software Foundation; either version 2, or (at your option)
+## any later version.
+##
+## Octave is distributed in the hope that it will be useful, but
+## WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+## General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with Octave; see the file COPYING.  If not, write to the Free
+## Software Foundation, 59 Temple Place - Suite 330, Boston, MA
+## 02111-1307, USA.
+
+## -*- texinfo -*-
+## @deftypefn {Function File} {} semilogyerr (@var{args})
+## This function produces two-dimensional plots on a semilogarithm axis 
+## with errorbars. Many different combinations of arguments are possible.  
+## The most used form is
+##
+## @example
+## semilogyerr (@var{x}, @var{y}, @var{ey}, @var{fmt})
+## @end example
+##
+## @noindent
+## which produces a semi-logarithm plot of @var{y} versus @var{x}
+## with errors in the @var{y}-scale defined by @var{ey} and the plot
+## format defined by @var{fmt}. See errorbar for available formats and 
+## additional information.
+##
+## @end deftypefn
+## @seealso{errorbar, loglogerr semilogxerr, polar, mesh, contour, __pltopt__, 
+## bar, stairs, gplot, gsplot, replot, xlabel, ylabel, and title}
+
+## Created: 20.2.2001
+## Author: Teemu Ikonen <tpikonen@pcu.helsinki.fi>
+## Keywords: errorbar, plotting
+
+function semilogyerr (varargin)
+
+  if (nargin < 2)
+    usage ("semilogyerr (...)");
+  endif
+
+  gset nologscale x;
+  gset logscale y;
+  gset nopolar;
+
+  __errcomm__ ("semilogyerr", varargin{:});
+
+endfunction