comparison yetilab/plot/plot.yeti @ 126:80eb9b6d4fb9

More on stacked charts
author Chris Cannam
date Sat, 20 Apr 2013 16:33:32 +0100
parents 0f362d1de06e
children 9baaaf37a008
comparison
equal deleted inserted replaced
125:0f362d1de06e 126:80eb9b6d4fb9
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.maths: Range, Coord3d; 4 import org.jzy3d.maths: Range, Coord3d;
5 import org.jzy3d.plot3d.primitives: Shape, HistogramBar, FlatLine2d, Polygon, Point; 5 import org.jzy3d.plot3d.primitives: Shape, HistogramBar, FlatLine2d, Polygon, Quad, Point;
6 import org.jzy3d.plot3d.primitives.axes.layout.providers: StaticTickProvider; 6 import org.jzy3d.plot3d.primitives.axes.layout.providers: StaticTickProvider;
7 import org.jzy3d.plot3d.primitives.axes.layout.renderers: TickLabelMap; 7 import org.jzy3d.plot3d.primitives.axes.layout.renderers: TickLabelMap;
8 import org.jzy3d.chart: Chart, ChartLauncher; 8 import org.jzy3d.chart: Chart, ChartLauncher;
9 import org.jzy3d.plot3d.builder: Builder; 9 import org.jzy3d.plot3d.builder: Builder;
10 import org.jzy3d.plot3d.builder.concrete: OrthonormalGrid; 10 import org.jzy3d.plot3d.builder.concrete: OrthonormalGrid;
131 plotStacked keys xkeys unit values = 131 plotStacked keys xkeys unit values =
132 (chart = new Chart(Quality#Nicest); 132 (chart = new Chart(Quality#Nicest);
133 scene = chart#getScene(); 133 scene = chart#getScene();
134 stacked = stack keys xkeys values; 134 stacked = stack keys xkeys values;
135 var z = 0; 135 var z = 0;
136 newRect x height z colour is number -> number -> number -> ~Color -> 'a =
137 (poly = new Quad();
138 poly#add(new Point(new Coord3d(x + 0.5, z, 0)));
139 poly#add(new Point(new Coord3d(x + 0.5, z, height)));
140 poly#add(new Point(new Coord3d(x - 0.5, z, height)));
141 poly#add(new Point(new Coord3d(x - 0.5, z, 0)));
142 poly#setWireframeDisplayed(true);
143 poly#setWireframeColor(colour);
144 poly#setFaceDisplayed(true);
145 poly#setColor(colour);
146 poly);
136 for keys do k: 147 for keys do k:
137 heights = stacked[k]; 148 heights = stacked[k];
138 poly = new Polygon();
139 poly#setWireframeDisplayed(true);
140 poly#setWireframeColor(Color#random());
141 poly#setFaceDisplayed(true);
142 poly#setColor(Color#random());
143 poly#add(new Point(new Coord3d(0, 0, z)));
144 var x = 0; 149 var x = 0;
150 c = Color#random();
145 for xkeys do xk: 151 for xkeys do xk:
146 poly#add(new Point(new Coord3d(x, heights[xk], z))); 152 poly = newRect x heights[xk] z c;
153 scene#add(poly);
147 x := x + 1; 154 x := x + 1;
148 done; 155 done;
149 poly#add(new Point(new Coord3d(x - 1, 0, z))); 156 z := z - 1;
150 scene#add(poly);
151 z := z + 1;
152 done; 157 done;
153 chart#getView()#setViewPoint(new Coord3d(0, 0, 0)); 158 // chart#getView()#setViewPoint(new Coord3d(0, 0, 0));
154 axes = chart#getAxeLayout(); 159 axes = chart#getAxeLayout();
155 axes#setXAxeLabelDisplayed(false); 160 axes#setXAxeLabelDisplayed(false);
156 axes#setYAxeLabelDisplayed(false); 161 axes#setYAxeLabelDisplayed(false);
157 axes#setZAxeLabelDisplayed(true); 162 axes#setZAxeLabelDisplayed(true);
158 axes#setZAxeLabel(unit); 163 axes#setZAxeLabel(unit);