Mercurial > hg > octave-nkf
view scripts/plot/ishold.m @ 16993:78f57b14535c
Overhaul ez* family of plot functions.
* scripts/plot/ezcontour.m, scripts/plot/ezcontourf.m, scripts/plot/ezmesh.m,
scripts/plot/ezmeshc.m, scripts/plot/ezpolar.m, scripts/plot/ezsurfc.m:
Redo docstring. Match function output names to docstring.
* scripts/plot/ezplot.m: Add %!demo block with sinc function.
Redo docstring. Match function output names to docstring.
scripts/plot/ezplot3.m: Add %!demo block showing 'animate' option.
Redo docstring. Match function output names to docstring.
* scripts/plot/ezsurf.m: Add %!demo block showing 'circ' argument.
Redo docstring. Match function output names to docstring.
* scripts/plot/private/__ezplot__.m:
Implement 'circ' option for ezsurf, ezmesh.
Implement 'animate' option for ezplot3.
Implement new algorithm for finding valid axis setting for mesh, surf, contour
plots based on function gradient.
Eliminate complex Z values along with singularities because these are not
plottable by mesh, surf.
Implement Matlab-compatible 2-pass approach to finding valid domain for plot.
Use 500 points for point-style plot functions ezplot, ezplot3, ezpolar rather
than previous 60 for a smoother plot.
Use better regexprep() calls to format "pretty print" title string.
Relax input checking and allow 3rd parametric function to be a function of 1
variable only.
Clean up code and use Octave coding conventions.
author | Rik <rik@octave.org> |
---|---|
date | Wed, 17 Jul 2013 10:09:44 -0700 |
parents | f3d52523cde1 |
children | eaab03308c0b |
line wrap: on
line source
## Copyright (C) 2005-2012 John W. Eaton ## ## 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 {Command} {} ishold ## @deftypefnx {Function File} {} ishold (@var{h}) ## Return true if the next plot will be added to the current plot, or ## false if the plot device will be cleared before drawing the next plot. ## ## Optionally, operate on the graphics handle @var{h} rather than the current ## plot. ## @seealso{hold} ## @end deftypefn function retval = ishold (h) if (nargin == 0) fig = gcf (); ax = get (fig, "currentaxes"); elseif (nargin == 1) if (ishandle (h)) if (isfigure (h)) ax = get (h, "currentaxes"); fig = h; elseif (strcmpi (get (h, "type"), "axes")) ax = h; fig = get (h, "parent"); else error ("ishold: expecting argument to be axes or figure graphics handle"); endif else error ("ishold: expecting argument to be axes or figure graphics handle"); endif else print_usage (); endif retval = (strcmpi (get (fig, "nextplot"), "add") && ! isempty (ax) && strcmpi (get (ax, "nextplot"), "add")); endfunction %!test %! hf = figure ("visible", "off"); %! unwind_protect %! assert (! ishold); %! assert (isempty (get (hf, "currentaxes"))); %! assert (get (hf, "NextPlot"), "add"); %! l = plot ([0 1]); %! assert (! ishold); %! assert (! ishold (gca)); %! assert (get (gca, "NextPlot"), "replace"); %! assert (get (hf, "NextPlot"), "add"); %! hold; %! assert (ishold); %! assert (ishold (gca)); %! assert (get (gca, "NextPlot"), "add"); %! assert (get (hf, "NextPlot"), "add"); %! p = fill ([0 1 1], [0 0 1],"black"); %! assert (length (get (hf, "children")), 1); %! assert (length (get (gca, "children")), 2); %! unwind_protect_cleanup %! close (hf); %! end_unwind_protect