Mercurial > hg > may
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); |