comparison yetilab/plot/plot.yeti @ 128:c5dd12a15993

Start adding text labels
author Chris Cannam
date Sat, 20 Apr 2013 19:12:04 +0100
parents 9baaaf37a008
children 759edd0d02ce
comparison
equal deleted inserted replaced
127:9baaaf37a008 128:c5dd12a15993
1 module yetilab.plot.plot; 1 module yetilab.plot.plot;
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.maths: Range, Coord3d; 5 import org.jzy3d.maths: Range, Coord3d;
5 import org.jzy3d.plot3d.primitives: Shape, HistogramBar, FlatLine2d, Polygon, Quad, Point; 6 import org.jzy3d.plot3d.primitives: Shape, HistogramBar, FlatLine2d, Polygon, Quad, Point;
6 import org.jzy3d.plot3d.primitives.axes.layout.providers: StaticTickProvider; 7 import org.jzy3d.plot3d.primitives.axes.layout.providers: StaticTickProvider;
7 import org.jzy3d.plot3d.primitives.axes.layout.renderers: TickLabelMap; 8 import org.jzy3d.plot3d.primitives.axes.layout.renderers: TickLabelMap;
8 import org.jzy3d.chart: Chart, ChartLauncher; 9 import org.jzy3d.chart: Chart, ChartLauncher;
127 done; 128 done;
128 done; 129 done;
129 stacked); 130 stacked);
130 131
131 plotStacked keys xkeys unit values = 132 plotStacked keys xkeys unit values =
132 (chart = new Chart(Quality#Nicest); 133 (quality = Quality#Nicest;
134 quality#setAnimated(false);
135 chart = new Chart(quality);
133 scene = chart#getScene(); 136 scene = chart#getScene();
134 stacked = stack keys xkeys values; 137 stacked = stack keys xkeys values;
135 var z = 0; 138 var z = 0;
136 newRect x y0 y1 z colour is number -> number -> number -> number -> ~Color -> 'a = 139 newRect x y0 y1 z colour is number -> number -> number -> number -> ~Color -> 'a =
137 (poly = new Quad(); 140 (poly = new Quad();
145 poly#setColor(colour); 148 poly#setColor(colour);
146 poly); 149 poly);
147 for keys do k: 150 for keys do k:
148 ranges = stacked[k]; 151 ranges = stacked[k];
149 var x = 0; 152 var x = 0;
153 var ty = 0;
150 c = Color#random(); 154 c = Color#random();
151 for xkeys do xk: 155 for xkeys do xk:
152 rect = newRect x ranges[xk].y0 ranges[xk].y1 z c; 156 rect = newRect x ranges[xk].y0 ranges[xk].y1 z c;
153 scene#add(rect); 157 scene#add(rect);
154 x := x + 1; 158 x := x + 1;
155 done; 159 done;
160 text = new DrawableTextBitmap(k, new Coord3d(0, z, ty), c);
161 scene#add(text);
156 z := z - 1; 162 z := z - 1;
163 ty := ty + 10;
157 done; 164 done;
158 chart#getView()#setViewPoint(new Coord3d(pi/2, 0, 0)); 165 chart#getView()#setViewPoint(new Coord3d(pi/2, 0, 0));
159 axes = chart#getAxeLayout(); 166 axes = chart#getAxeLayout();
160 axes#setXAxeLabelDisplayed(false); 167 axes#setXAxeLabelDisplayed(false);
161 axes#setYAxeLabelDisplayed(false); 168 axes#setYAxeLabelDisplayed(false);