Mercurial > hg > may
diff yetilab/plot/plot.yeti @ 140:10463070bab4
Attempt (not apparently working) at adjusting tick alignment
author | Chris Cannam |
---|---|
date | Wed, 24 Apr 2013 15:19:17 +0100 |
parents | e95b474a42c3 |
children | 9852a273e559 |
line wrap: on
line diff
--- a/yetilab/plot/plot.yeti Wed Apr 24 10:08:22 2013 +0100 +++ b/yetilab/plot/plot.yeti Wed Apr 24 15:19:17 2013 +0100 @@ -5,7 +5,7 @@ import org.jzy3d.maths: Range, Coord3d; import org.jzy3d.plot3d.primitives: Shape, HistogramBar, FlatLine2d, Polygon, Quad, Point; import org.jzy3d.plot3d.primitives.axes.layout.providers: StaticTickProvider, RegularTickProvider; -import org.jzy3d.plot3d.primitives.axes.layout.renderers: ITickRenderer, TickLabelMap; +import org.jzy3d.plot3d.primitives.axes.layout.renderers: ITickRenderer, TickLabelMap, IntegerTickRenderer; import org.jzy3d.chart: Chart, ChartLauncher; import org.jzy3d.plot3d.builder: Builder; import org.jzy3d.plot3d.builder.concrete: OrthonormalGrid; @@ -68,6 +68,14 @@ end; new PercentageTickRenderer()); +newPaddedIntTickRenderer () = + (f v = " \(int (v + 0.5))"; + class PaddedIntTickRenderer extends ITickRenderer + String format(double value) f value, + String format(float value) f value + end; + new PaddedIntTickRenderer()); + parseOptions options defaultKeys defaultXKeys = (parsed = { var keys = array (sort defaultKeys), @@ -205,7 +213,10 @@ stack keys xkeys values normalised = (stacked = mapIntoHash id \(mapIntoHash id \{ y0 = 0, y1 = 0 } xkeys) keys; prev = mapIntoHash id \0 xkeys; - valueOf k xk = if xk in values[k] then values[k][xk] else 0 fi; + valueOf k xk = + if k in values and xk in values[k] + then values[k][xk] else 0 + fi; for xkeys do xk: total = sum (map do k: valueOf k xk done keys); for keys do k: @@ -275,6 +286,7 @@ axes#setZTickRenderer(newPercentTickRenderer ()); else axes#setZAxeLabel(opts.unit); + axes#setZTickRenderer(newPaddedIntTickRenderer ()); fi; axes#setYTickLabelDisplayed(false); showChart opts chart);