comparison yetilab/plot/plot.yeti @ 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
comparison
equal deleted inserted replaced
138:f68c92bd2adb 139:e95b474a42c3
134 plotBarChart options values = 134 plotBarChart options values =
135 (opts = parseOptions options (keys values) []; 135 (opts = parseOptions options (keys values) [];
136 chart = newChart opts; 136 chart = newChart opts;
137 var n = length opts.keys; 137 var n = length opts.keys;
138 scene = chart#getScene(); 138 scene = chart#getScene();
139 ticks = new double[n+1]; 139 ticks = new double[n];
140 tickLabels = new TickLabelMap(); 140 tickLabels = new TickLabelMap();
141 var i = 0; 141 var i = 0;
142 var x = n - i - 1; 142 var x = n - i - 1;
143 total = sum (map do k: if k in values then values[k] else 0 fi done opts.keys); 143 total = sum (map do k: if k in values then values[k] else 0 fi done opts.keys);
144 for opts.keys do k: 144 for opts.keys do k:
239 scene = chart#getScene(); 239 scene = chart#getScene();
240 stacked = stack opts.keys opts.xkeys values opts.normalised; 240 stacked = stack opts.keys opts.xkeys values opts.normalised;
241 var z = 0; 241 var z = 0;
242 var ty = 0; 242 var ty = 0;
243 nxk = length opts.xkeys; 243 nxk = length opts.xkeys;
244 xticks = new double[nxk];
244 xtickLabels = new TickLabelMap(); 245 xtickLabels = new TickLabelMap();
245 for [0..nxk - 1] do x: 246 for [0..nxk - 1] do x:
246 xtickLabels#register(x, opts.xkeys[x]); 247 xticks[x] := x;
248 k = opts.xkeys[x];
249 xtickLabels#register(x, if k in opts.labels then opts.labels[k] else k fi);
247 done; 250 done;
248 for opts.keys do k: 251 for opts.keys do k:
249 ranges = stacked[k]; 252 ranges = stacked[k];
250 c = chartColour z; 253 c = chartColour z;
251 for [0..nxk - 1] do x: 254 for [0..nxk - 1] do x:
259 ty := ty + 0.1; 262 ty := ty + 0.1;
260 done; 263 done;
261 chart#getView()#setViewPoint(new Coord3d(-pi/2, 0, 0)); 264 chart#getView()#setViewPoint(new Coord3d(-pi/2, 0, 0));
262 axes = chart#getAxeLayout(); 265 axes = chart#getAxeLayout();
263 axes#setXAxeLabelDisplayed(false); 266 axes#setXAxeLabelDisplayed(false);
264 // if nxk < 10 then 267 if nxk < 10 then
265 // axes#setXTickProvider(new RegularTickProvider(nxk + 1)); 268 axes#setXTickProvider(new StaticTickProvider(xticks));
266 // fi; 269 fi;
267 axes#setXTickRenderer(xtickLabels); 270 axes#setXTickRenderer(xtickLabels);
268 axes#setYAxeLabelDisplayed(false); 271 axes#setYAxeLabelDisplayed(false);
269 axes#setZAxeLabelDisplayed(true); 272 axes#setZAxeLabelDisplayed(true);
270 if opts.normalised then 273 if opts.normalised then
271 axes#setZAxeLabel(""); 274 axes#setZAxeLabel("");