Mercurial > hg > octave-lyh
diff scripts/plot/grid.m @ 17049:0322e057697f
hold.m, grid.m, box.m: Update to use new __plt_get_axis_arg__.
* scripts/plot/box.m: Update to use new __plt_get_axis_arg__.
Use hax instead of ax. Redo docstring.
* scripts/plot/grid.m: Update to use new __plt_get_axis_arg__.
Use hax instead of ax. Redo docstring. Move input validation
to front of function.
* scripts/plot/hold.m: Update to use new __plt_get_axis_arg__.
Use hax instead of ax. Redo docstring. Add 2 new %!demos.
author | Pantxo Diribarne <pantxo.diribarne@gmail.com> |
---|---|
date | Tue, 23 Jul 2013 15:10:57 +0200 |
parents | 4506eade9f04 |
children | d3ebc3f9bdbf |
line wrap: on
line diff
--- a/scripts/plot/grid.m +++ b/scripts/plot/grid.m @@ -17,83 +17,98 @@ ## <http://www.gnu.org/licenses/>. ## -*- texinfo -*- -## @deftypefn {Function File} {} grid (@var{arg}) -## @deftypefnx {Function File} {} grid ("minor", @var{arg2}) +## @deftypefn {Function File} {} grid +## @deftypefnx {Function File} {} grid on +## @deftypefnx {Function File} {} grid off +## @deftypefnx {Function File} {} grid minor +## @deftypefnx {Function File} {} grid minor on +## @deftypefnx {Function File} {} grid minor off ## @deftypefnx {Function File} {} grid (@var{hax}, @dots{}) -## Force the display of a grid on the plot. -## The argument may be either @code{"on"}, or @code{"off"}. +## Control the display of grid lines on a plot. +## +## The function input may be either @code{"on"}, or @code{"off"}. ## If it is omitted, the current grid state is toggled. ## -## If @var{arg} is @code{"minor"} then the minor grid is toggled. When -## using a minor grid a second argument @var{arg2} is allowed, which can -## be either @code{"on"} or @code{"off"} to explicitly set the state of -## the minor grid. +## If the first argument is @code{"minor"} then all further commands +## modify the minor grid rather than the major grid. ## ## If the first argument is an axis handle, @var{hax}, operate on the ## specified axis object. -## @seealso{plot} +## +## To control the grid lines for an individual axis use the @code{set} +## function. For example, +## +## @example +## set (gca, "ygrid", "on"); +## @end example +## @seealso{box} ## @end deftypefn ## Author: jwe function grid (varargin) - [ax, varargin, nargs] = __plt_get_axis_arg__ ("grid", varargin{:}); + [hax, varargin, nargs] = __plt_get_axis_arg__ ("grid", varargin{:}); - grid_on = (strcmp (get (ax, "xgrid"), "on") - && strcmp (get (ax, "ygrid"), "on") - && strcmp (get (ax, "zgrid"), "on")); - - minor_on = (strcmp (get (ax, "xminorgrid"), "on") - && strcmp (get (ax, "yminorgrid"), "on") - && strcmp (get (ax, "zminorgrid"), "on")); - + if (isempty (hax)) + hax = gca (); + endif + if (nargs > 2) print_usage (); - elseif (nargs == 0) + endif + + grid_on = ( strcmp (get (hax, "xgrid"), "on") + && strcmp (get (hax, "ygrid"), "on") + && strcmp (get (hax, "zgrid"), "on")); + + minor_on = ( strcmp (get (hax, "xminorgrid"), "on") + && strcmp (get (hax, "yminorgrid"), "on") + && strcmp (get (hax, "zminorgrid"), "on")); + + if (nargs == 0) grid_on = ! grid_on; else x = varargin{1}; - if (ischar (x)) - if (strcmpi (x, "off")) - grid_on = false; - elseif (strcmpi (x, "on")) - grid_on = true; - elseif (strcmpi (x, "minor")) - if (nargs == 2) - x2 = varargin{2}; - if (strcmpi (x2, "on")) - minor_on = true; - grid_on = true; - elseif (strcmpi (x2, "off")) - minor_on = false; - else - print_usage (); - endif + if (! ischar (x)) + error ("grid: argument must be a string"); + endif + if (strcmpi (x, "off")) + grid_on = false; + elseif (strcmpi (x, "on")) + grid_on = true; + elseif (strcmpi (x, "minor")) + if (nargs == 2) + x2 = varargin{2}; + if (strcmpi (x2, "on")) + minor_on = true; + grid_on = true; + elseif (strcmpi (x2, "off")) + minor_on = false; else - minor_on = ! minor_on; - if (minor_on) - grid_on = true; - endif + print_usage (); endif else - print_usage (); + minor_on = ! minor_on; + if (minor_on) + grid_on = true; + endif endif else - error ("grid: argument must be a string"); + print_usage (); endif endif if (grid_on) - set (ax, "xgrid", "on", "ygrid", "on", "zgrid", "on"); + set (hax, "xgrid", "on", "ygrid", "on", "zgrid", "on"); if (minor_on) - set (ax, "xminorgrid", "on", "yminorgrid", "on", "zminorgrid", "on"); + set (hax, "xminorgrid", "on", "yminorgrid", "on", "zminorgrid", "on"); else - set (ax, "xminorgrid", "off", "yminorgrid", "off", "zminorgrid", "off"); + set (hax, "xminorgrid", "off", "yminorgrid", "off", "zminorgrid", "off"); endif else - set (ax, "xgrid", "off", "ygrid", "off", "zgrid", "off"); - set (ax, "xminorgrid", "off", "yminorgrid", "off", "zminorgrid", "off"); + set (hax, "xgrid", "off", "ygrid", "off", "zgrid", "off", + "xminorgrid", "off", "yminorgrid", "off", "zminorgrid", "off"); endif endfunction