Mercurial > hg > may
comparison yetilab/plot/plot.yeti @ 138:f68c92bd2adb
Slightly better text placement
author | Chris Cannam |
---|---|
date | Tue, 23 Apr 2013 17:01:19 +0100 |
parents | b28512329efc |
children | e95b474a42c3 |
comparison
equal
deleted
inserted
replaced
137:b28512329efc | 138:f68c92bd2adb |
---|---|
2 | 2 |
3 import org.jzy3d.plot3d.builder: Mapper; | 3 import org.jzy3d.plot3d.builder: Mapper; |
4 import org.jzy3d.plot3d.text.drawable: DrawableTextBillboard, DrawableTextBitmap; | 4 import org.jzy3d.plot3d.text.drawable: DrawableTextBillboard, DrawableTextBitmap; |
5 import org.jzy3d.maths: Range, Coord3d; | 5 import org.jzy3d.maths: Range, Coord3d; |
6 import org.jzy3d.plot3d.primitives: Shape, HistogramBar, FlatLine2d, Polygon, Quad, Point; | 6 import org.jzy3d.plot3d.primitives: Shape, HistogramBar, FlatLine2d, Polygon, Quad, Point; |
7 import org.jzy3d.plot3d.primitives.axes.layout.providers: StaticTickProvider; | 7 import org.jzy3d.plot3d.primitives.axes.layout.providers: StaticTickProvider, RegularTickProvider; |
8 import org.jzy3d.plot3d.primitives.axes.layout.renderers: ITickRenderer, TickLabelMap; | 8 import org.jzy3d.plot3d.primitives.axes.layout.renderers: ITickRenderer, TickLabelMap; |
9 import org.jzy3d.chart: Chart, ChartLauncher; | 9 import org.jzy3d.chart: Chart, ChartLauncher; |
10 import org.jzy3d.plot3d.builder: Builder; | 10 import org.jzy3d.plot3d.builder: Builder; |
11 import org.jzy3d.plot3d.builder.concrete: OrthonormalGrid; | 11 import org.jzy3d.plot3d.builder.concrete: OrthonormalGrid; |
12 import org.jzy3d.colors.colormaps: ColorMapRainbow; | 12 import org.jzy3d.colors.colormaps: ColorMapRainbow; |
238 chart = newChart opts; | 238 chart = newChart opts; |
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 xtickLabels = new TickLabelMap(); | 244 xtickLabels = new TickLabelMap(); |
244 for [0..length opts.xkeys - 1] do x: | 245 for [0..nxk - 1] do x: |
245 xtickLabels#register(x, opts.xkeys[x]); | 246 xtickLabels#register(x, opts.xkeys[x]); |
246 done; | 247 done; |
247 for opts.keys do k: | 248 for opts.keys do k: |
248 ranges = stacked[k]; | 249 ranges = stacked[k]; |
249 c = chartColour z; | 250 c = chartColour z; |
250 for [0..length opts.xkeys - 1] do x: | 251 for [0..nxk - 1] do x: |
251 xk = opts.xkeys[x]; | 252 xk = opts.xkeys[x]; |
252 rect = newRect x ranges[xk].y0 ranges[xk].y1 z c; | 253 rect = newRect x ranges[xk].y0 ranges[xk].y1 z c; |
253 scene#add(rect); | 254 scene#add(rect); |
254 done; | 255 done; |
255 text = new DrawableTextBitmap(opts.labels[k], new Coord3d(-5, z, ty), c); | 256 text = new DrawableTextBitmap(opts.labels[k], new Coord3d(-(nxk/5 + 0.5), z, ty), c); |
256 scene#add(text); | 257 scene#add(text); |
257 z := z - 1; | 258 z := z - 1; |
258 ty := ty + 0.1; | 259 ty := ty + 0.1; |
259 done; | 260 done; |
260 chart#getView()#setViewPoint(new Coord3d(-pi/2, 0, 0)); | 261 chart#getView()#setViewPoint(new Coord3d(-pi/2, 0, 0)); |
261 axes = chart#getAxeLayout(); | 262 axes = chart#getAxeLayout(); |
262 axes#setXAxeLabelDisplayed(false); | 263 axes#setXAxeLabelDisplayed(false); |
264 // if nxk < 10 then | |
265 // axes#setXTickProvider(new RegularTickProvider(nxk + 1)); | |
266 // fi; | |
263 axes#setXTickRenderer(xtickLabels); | 267 axes#setXTickRenderer(xtickLabels); |
264 axes#setYAxeLabelDisplayed(false); | 268 axes#setYAxeLabelDisplayed(false); |
265 axes#setZAxeLabelDisplayed(true); | 269 axes#setZAxeLabelDisplayed(true); |
266 if opts.normalised then | 270 if opts.normalised then |
267 axes#setZAxeLabel(""); | 271 axes#setZAxeLabel(""); |