changeset 16565:34a9a4e48f9b

New function waterfall * waterfall.m: New file. * scripts/plot/module.mk (plot_FCN_FILES): Add it to the list. * __unimplemented__.m (missing_functions): Remove waterfall from the list. * plot.txi: Include waterfall docstring. * NEWS: Mention waterfall.
author Mike Miller <mtmiller@ieee.org>
date Wed, 24 Apr 2013 17:53:19 -0400
parents fb8fe0ed4bbb
children aa5299a1d770
files NEWS doc/interpreter/plot.txi scripts/help/__unimplemented__.m scripts/plot/module.mk scripts/plot/waterfall.m
diffstat 5 files changed, 67 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/NEWS
+++ b/NEWS
@@ -178,9 +178,9 @@
 
  ** Other new functions added in 3.8.0:
 
-      betaincinv   dawson     fminsearch  polyeig     strjoin
-      cmpermute    erfcinv    importdata  rgbplot     tetramesh
-      cmunique     erfi       iscolormap  shrinkfaces
+      betaincinv   dawson     fminsearch  polyeig      strjoin
+      cmpermute    erfcinv    importdata  rgbplot      tetramesh
+      cmunique     erfi       iscolormap  shrinkfaces  waterfall
       colorcube    findfigs   lines       splinefit
 
  ** Deprecated functions.
--- a/doc/interpreter/plot.txi
+++ b/doc/interpreter/plot.txi
@@ -392,6 +392,8 @@
 
 @DOCSTRING(scatter3)
 
+@DOCSTRING(waterfall)
+
 @menu
 * Aspect Ratio::
 * Three-dimensional Function Plotting::  
--- a/scripts/help/__unimplemented__.m
+++ b/scripts/help/__unimplemented__.m
@@ -402,7 +402,6 @@
   "visdiff",
   "volumebounds",
   "waitfor",
-  "waterfall",
   "wavfinfo",
   "wavplay",
   "wavrecord",
--- a/scripts/plot/module.mk
+++ b/scripts/plot/module.mk
@@ -204,6 +204,7 @@
   plot/view.m \
   plot/waitbar.m \
   plot/waitforbuttonpress.m \
+  plot/waterfall.m \
   plot/whitebg.m \
   plot/xlabel.m \
   plot/xlim.m \
new file mode 100644
--- /dev/null
+++ b/scripts/plot/waterfall.m
@@ -0,0 +1,61 @@
+## Copyright (C) 2013 Mike Miller
+##
+## 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 3 of the License, 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, see
+## <http://www.gnu.org/licenses/>.
+
+## -*- texinfo -*-
+## @deftypefn  {Function File} {} waterfall (@var{x}, @var{y}, @var{z})
+## @deftypefnx {Function File} {} waterfall (@var{z})
+## @deftypefnx {Function File} {@var{h} =} waterfall (@dots{})
+## Plot a waterfall plot given matrices @var{x}, and @var{y} from
+## @code{meshgrid} and a matrix @var{z} corresponding to the @var{x} and
+## @var{y} coordinates of the mesh.  If @var{x} and @var{y} are vectors,
+## then a typical vertex is (@var{x}(j), @var{y}(i), @var{z}(i,j)).  Thus,
+## columns of @var{z} correspond to different @var{x} values and rows of
+## @var{z} correspond to different @var{y} values.
+##
+## The optional return value @var{h} is a graphics handle to the created
+## surface object.
+## @seealso{meshgrid, meshz, surf}
+## @end deftypefn
+
+## Author: Mike Miller <mtmiller@ieee.org>
+
+function h = waterfall (varargin)
+
+  tmp = meshz (varargin{:});
+
+  set (tmp, "meshstyle", "row");
+
+  ## The gnuplot toolkit does nothing with the meshstyle property currently.
+  toolkit = get (ancestor (tmp, "figure"), "__graphics_toolkit__");
+  if (strcmp (toolkit, "gnuplot"))
+    warning ("waterfall: may not render correctly using toolkit '%s'", toolkit);
+  endif
+
+  if (nargout > 0)
+    h = tmp;
+  endif
+
+endfunction
+
+
+%!demo
+%! clf;
+%! colormap ('default');
+%! [~,~,Z] = peaks ();
+%! waterfall (Z);
+