changeset 21165:446bab5da2f7

datetick.m: properly process keeplimits (bug #46484) * datetick.m: preserve axis limits when keeplimits was specified * contributors.in: add LarsKindermann to list of contributors
author Lars Kindermann
date Sun, 31 Jan 2016 21:23:12 +0100
parents a610c00dc556
children 407c01ee1d9a
files doc/interpreter/contributors.in scripts/plot/appearance/datetick.m
diffstat 2 files changed, 18 insertions(+), 11 deletions(-) [+]
line wrap: on
line diff
--- a/doc/interpreter/contributors.in	Sun Jan 31 08:10:59 2016 -0800
+++ b/doc/interpreter/contributors.in	Sun Jan 31 21:23:12 2016 +0100
@@ -151,6 +151,7 @@
 Joel Keay
 Mumit Khan
 Paul Kienzle
+Lars Kindermann
 Aaron A. King
 Erik Kjellson
 Arno J. Klaassen
--- a/scripts/plot/appearance/datetick.m	Sun Jan 31 08:10:59 2016 -0800
+++ b/scripts/plot/appearance/datetick.m	Sun Jan 31 21:23:12 2016 +0100
@@ -144,17 +144,23 @@
   else
     ## Need to do our own axis tick position calculation as
     ## year, etc, don't fallback on nice datenum values.
-    objs = findall (gca ());
-    xmax = NaN;
-    xmin = NaN;
-    for i = 1 : length (objs)
-      fld = get (objs (i));
-      if (isfield (fld, [ax "data"]))
-        xdata = getfield (fld, [ax "data"])(:);
-        xmin = min (xmin, min (xdata));
-        xmax = max (xmax, max (xdata));
-      endif
-    endfor
+    if (keeplimits)
+      limits=get (gca (), [ax "lim"]);
+      xmin=limits(1);
+      xmax=limits(2);  
+    else
+      objs = findall (gca ());
+      xmax = NaN;
+      xmin = NaN;
+      for i = 1 : length (objs)
+        fld = get (objs (i));
+        if (isfield (fld, [ax "data"]))
+          xdata = getfield (fld, [ax "data"])(:);
+          xmin = min (xmin, min (xdata));
+          xmax = max (xmax, max (xdata));
+        endif
+      endfor
+    endif
 
     if (isnan (xmin) || isnan (xmax))
       xmin = 0;