changeset 17520:8a303b01cdd0

grid.m: 'grid on' now also turns on minor grid for log scale axes. * scripts/plot/grid.m: When switching grid on, turn minor grid on for log scale axes.
author Rik <rik@octave.org>
date Mon, 30 Sep 2013 19:55:51 -0700
parents cc9befe5d271
children 3670ce8da1a0
files scripts/plot/grid.m
diffstat 1 files changed, 15 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/scripts/plot/grid.m	Mon Sep 30 16:50:41 2013 -0700
+++ b/scripts/plot/grid.m	Mon Sep 30 19:55:51 2013 -0700
@@ -66,24 +66,26 @@
               && strcmp (get (hax, "yminorgrid"), "on")
               && strcmp (get (hax, "zminorgrid"), "on"));
 
+  minor_auto = true;
   if (nargs == 0)
     grid_on = ! grid_on;
   else
-    x = varargin{1};
-    if (! ischar (x))
+    arg1 = varargin{1};
+    if (! ischar (arg1))
       error ("grid: argument 1 must be an axis handle or a string");
     endif
-    if (strcmpi (x, "off"))
+    if (strcmpi (arg1, "off"))
       grid_on = false;
-    elseif (strcmpi (x, "on"))
+    elseif (strcmpi (arg1, "on"))
       grid_on = true;
-    elseif (strcmpi (x, "minor"))
+    elseif (strcmpi (arg1, "minor"))
+      minor_auto = false;
       if (nargs == 2)
-        x2 = varargin{2};
-        if (strcmpi (x2, "on"))
+        arg2 = varargin{2};
+        if (strcmpi (arg2, "on"))
           minor_on = true;
           grid_on = true;
-        elseif (strcmpi (x2, "off"))
+        elseif (strcmpi (arg2, "off"))
           minor_on = false;
         else
           print_usage ();
@@ -103,6 +105,11 @@
     set (hax, "xgrid", "on", "ygrid", "on", "zgrid", "on");
     if (minor_on)
       set (hax, "xminorgrid", "on", "yminorgrid", "on", "zminorgrid", "on");
+    elseif (minor_auto)
+      xmg = ifelse (strcmp (get (hax, "xscale"), "log"), "on", "off");
+      ymg = ifelse (strcmp (get (hax, "yscale"), "log"), "on", "off");
+      zmg = ifelse (strcmp (get (hax, "zscale"), "log"), "on", "off");
+      set (hax, "xminorgrid", xmg, "yminorgrid", ymg, "zminorgrid", zmg);
     else
       set (hax, "xminorgrid", "off", "yminorgrid", "off", "zminorgrid", "off");
     endif