changeset 139:e95b474a42c3

Show fixed ticks if there are few x-axis points
author Chris Cannam
date Wed, 24 Apr 2013 10:08:22 +0100
parents f68c92bd2adb
children 10463070bab4
files yetilab/plot/plot.yeti
diffstat 1 files changed, 8 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/yetilab/plot/plot.yeti	Tue Apr 23 17:01:19 2013 +0100
+++ b/yetilab/plot/plot.yeti	Wed Apr 24 10:08:22 2013 +0100
@@ -136,7 +136,7 @@
     chart = newChart opts;
     var n = length opts.keys;
     scene = chart#getScene();
-    ticks = new double[n+1];
+    ticks = new double[n];
     tickLabels = new TickLabelMap();
     var i = 0;
     var x = n - i - 1;
@@ -241,9 +241,12 @@
     var z = 0;
     var ty = 0;
     nxk = length opts.xkeys;
+    xticks = new double[nxk];
     xtickLabels = new TickLabelMap();
     for [0..nxk - 1] do x:
-        xtickLabels#register(x, opts.xkeys[x]);
+        xticks[x] := x;
+        k = opts.xkeys[x];
+        xtickLabels#register(x, if k in opts.labels then opts.labels[k] else k fi);
     done;
     for opts.keys do k:
         ranges = stacked[k];
@@ -261,9 +264,9 @@
     chart#getView()#setViewPoint(new Coord3d(-pi/2, 0, 0));
     axes = chart#getAxeLayout();
     axes#setXAxeLabelDisplayed(false);
-//    if nxk < 10 then
-//        axes#setXTickProvider(new RegularTickProvider(nxk + 1));
-//    fi;
+    if nxk < 10 then
+        axes#setXTickProvider(new StaticTickProvider(xticks));
+    fi;
     axes#setXTickRenderer(xtickLabels);
     axes#setYAxeLabelDisplayed(false);
     axes#setZAxeLabelDisplayed(true);