X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?p=CreaPhase.git;a=blobdiff_plain;f=octave_packages%2Fm%2Fplot%2Fgrid.m;fp=octave_packages%2Fm%2Fplot%2Fgrid.m;h=f4cebf987a1ab140a5d9f3d4559338c2cd4a63bf;hp=0000000000000000000000000000000000000000;hb=1c0469ada9531828709108a4882a751d2816994a;hpb=63de9f36673d49121015e3695f2c336ea92bc278 diff --git a/octave_packages/m/plot/grid.m b/octave_packages/m/plot/grid.m new file mode 100644 index 0000000..f4cebf9 --- /dev/null +++ b/octave_packages/m/plot/grid.m @@ -0,0 +1,121 @@ +## Copyright (C) 1993-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 +## . + +## -*- texinfo -*- +## @deftypefn {Function File} {} grid (@var{arg}) +## @deftypefnx {Function File} {} grid ("minor", @var{arg2}) +## @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"}. +## 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 an axis handle, @var{hax}, operate on the +## specified axis object. +## @seealso{plot} +## @end deftypefn + +## Author: jwe + +function grid (varargin) + + [ax, 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 (nargs > 2) + print_usage (); + elseif (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 + else + minor_on = ! minor_on; + if (minor_on) + grid_on = true; + endif + endif + else + print_usage (); + endif + else + error ("grid: argument must be a string"); + endif + endif + + if (grid_on) + set (ax, "xgrid", "on", "ygrid", "on", "zgrid", "on"); + if (minor_on) + set (ax, "xminorgrid", "on", "yminorgrid", "on", "zminorgrid", "on"); + else + set (ax, "xminorgrid", "off", "yminorgrid", "off", "zminorgrid", "off"); + endif + else + set (ax, "xgrid", "off", "ygrid", "off", "zgrid", "off"); + set (ax, "xminorgrid", "off", "yminorgrid", "off", "zminorgrid", "off"); + endif + +endfunction + +%!demo +%! clf +%! subplot (2,2,1) +%! plot (1:100) +%! grid minor +%! grid minor +%! grid +%! title ("no grid") +%! subplot (2,2,2) +%! plot (1:100) +%! grid +%! title ("grid on") +%! subplot (2,2,3) +%! plot (1:100) +%! grid minor +%! title ("grid minor") +%! subplot (2,2,4) +%! semilogy (1:100) +%! grid minor +%! title ("grid minor") +