# HG changeset patch # User Chris Cannam # Date 1366813157 -3600 # Node ID 10463070bab41738641a5a563f97391ee0f02947 # Parent e95b474a42c3363ec441672dd95865e1a34ec864 Attempt (not apparently working) at adjusting tick alignment diff -r e95b474a42c3 -r 10463070bab4 yetilab/plot/plot.yeti --- 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);