Mercurial > hg > may
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(""); |