changeset 108:8f6c2f87dc35

Some basic plotting
author Chris Cannam
date Fri, 29 Mar 2013 22:36:29 +0000
parents 041c7f4aec2e
children 64772a8ea025
files scraps/plot.yeti scraps/plot2.yeti yetilab/plot/plot.yeti
diffstat 3 files changed, 61 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/scraps/plot.yeti	Thu Mar 28 21:37:29 2013 +0000
+++ b/scraps/plot.yeti	Fri Mar 29 22:36:29 2013 +0000
@@ -1,16 +1,19 @@
-program plot;
+module scraps.plot;
+
 import org.jzy3d.chart: Chart;
-c = new Chart();
+import org.jzy3d.plot3d.rendering.canvas: Quality;
 import org.jzy3d.maths: Coord3d;
-points = new Coord3d[1000];
-r () = Math#random() - 0.5; for [0..999] do i: points[i] := new Coord3d(r(),r(),r()) done;
 import org.jzy3d.plot3d.primitives: MultiColorScatter;
 import org.jzy3d.colors.colormaps: ColorMapRainbow;
 import org.jzy3d.colors: ColorMapper;
+import org.jzy3d.colors: Color;
+import org.jzy3d.chart: ChartLauncher;
+
+points = new Coord3d[1000];
+r () = Math#random() - 0.5; for [0..999] do i: points[i] := new Coord3d(r(),r(),r()) done;
 m = new MultiColorScatter(points, new ColorMapper(new ColorMapRainbow (), -0.5, 0.5));
-import org.jzy3d.colors: Color;
+c = new Chart(Quality#Advanced);
 c#getAxeLayout()#setMainColor(Color#WHITE);
 c#getView()#setBackgroundColor(Color#BLACK);
 c#getScene()#add(m);
-import org.jzy3d.chart: ChartLauncher;
 ChartLauncher#openChart(c);
--- a/scraps/plot2.yeti	Thu Mar 28 21:37:29 2013 +0000
+++ b/scraps/plot2.yeti	Fri Mar 29 22:36:29 2013 +0000
@@ -1,4 +1,4 @@
-module plot2;
+module scraps.plot2;
 
 import org.jzy3d.plot3d.builder: Mapper;
 import org.jzy3d.maths: Range;
@@ -29,7 +29,7 @@
 surface#setWireframeDisplayed(false);
 surface#setWireframeColor(Color#BLACK);
 
-chart = new Chart(Quality#Advanced);
+chart = new Chart(Quality#Nicest);
 chart#getScene()#getGraph()#add(surface);
 ChartLauncher#openChart(chart);
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/yetilab/plot/plot.yeti	Fri Mar 29 22:36:29 2013 +0000
@@ -0,0 +1,50 @@
+module yetilab.plot.plot;
+
+import org.jzy3d.plot3d.builder: Mapper;
+import org.jzy3d.maths: Range;
+import org.jzy3d.plot3d.primitives: Shape;
+import org.jzy3d.chart: Chart, ChartLauncher;
+import org.jzy3d.plot3d.builder: Builder;
+import org.jzy3d.plot3d.builder.concrete: OrthonormalGrid;
+import org.jzy3d.colors.colormaps: ColorMapRainbow;
+import org.jzy3d.colors: ColorMapper;
+import org.jzy3d.colors: Color;
+import org.jzy3d.plot3d.rendering.canvas: Quality;
+
+newMatrixMapper matrix =
+   (class MMapper extends Mapper
+        double f(double x, double y)
+            matrix.getAt y x
+    end;
+    new MMapper());
+
+newMatrixLogMapper matrix =
+   (class MMapper extends Mapper
+        double f(double x, double y)
+            ln (matrix.getAt y x)
+    end;
+    new MMapper());
+
+newMapper mapFunction =
+   (class FMapper extends Mapper
+        double f(double x, double y)
+            mapFunction x y
+    end;
+    new FMapper());
+
+plot matrix =
+   (mapper = newMatrixLogMapper matrix;
+    size = matrix.size;
+    xrange = new Range(1, size.columns - 1);
+    yrange = new Range(1, size.rows - 1);
+    grid = new OrthonormalGrid(xrange, size.columns, yrange, size.rows);
+    surface = Builder#buildOrthonormal(grid, mapper);
+    surface#setFaceDisplayed(true);
+    surface#setWireframeDisplayed(true);
+    surface#setWireframeColor(Color#BLACK);
+    chart = new Chart(Quality#Nicest);
+    chart#getScene()#getGraph()#add(surface);
+    ChartLauncher#openChart(chart));
+
+{ plot }
+