wisp
 
(Arne Babenhauserheide)
2016-11-08: polish plot

polish plot

diff --git a/examples/ensemble-estimation.w b/examples/ensemble-estimation.w
--- a/examples/ensemble-estimation.w
+++ b/examples/ensemble-estimation.w
@@ -115,7 +115,8 @@ define x^seed-std : append-ec (: i (leng
 define P : make-covariance-matrix-from-standard-deviations x^seed-std
 
 ;; Then generate observations
-define y⁰-num 600 ; careful: N² in memory, 1000 is still OK
+define y⁰-num 3000
+define y⁰-plot-skip 100
 define y⁰-pos-max 100
 ;; At the positions where they are measured. Drawn randomly to avoid
 ;; giving an undue weight to later values.
@@ -155,7 +156,7 @@ x are parameters to be optimized, pos is
 ;; the equivalent of measured observations
 define y^true : list-ec (: i y⁰-pos) : H x^true i
 ;; now we disturb the observations with a fixed standard deviation. This assumes uncorrelated observations.
-define y⁰-std 4
+define y⁰-std 16
 define y⁰ : list-ec (: i y^true) : + i : * y⁰-std : random:normal
 ;; and define the covariance matrix. This assumes uncorrelated observations.
 define R : make-covariance-matrix-from-standard-deviations : list-ec (: i y⁰-num) y⁰-std
@@ -272,7 +273,8 @@ define : flatten li
 
 define : main args
     let*
-      : ensemble-member-count 32
+      : ensemble-member-count 256
+        ensemble-member-plot-skip 32
         optimized : EnSRT H x^b P y⁰ R y⁰-pos ensemble-member-count
         x-opt : list-ref optimized 0
         x-deviations : list-ref optimized 1
@@ -324,15 +326,16 @@ define : main args
         format port "pl.plot(*zip(*sorted(zip(ypos, ytrue))), label='true')\n"
         format port "pl.errorbar(*zip(*sorted(zip(ypos, yopt))), yerr=zip(*sorted(zip(ypos, yoptstds)))[1], label='optimized')\n"
         format port "eb=pl.errorbar(*zip(*sorted(zip(ypos, y0))), yerr=yerr, alpha=0.6, marker='+', linewidth=0, label='measurements')\neb[-1][0].set_linewidth(1)\n"
-        list-ec (: step 0 (length x^steps) 10) ; stepsize 10: sample one in 10 steps
-                list-ec (: member (list-ref x^steps (- (length x^steps) step 1))) ; reversed
-                   begin
+        list-ec (: step 0 (length x^steps) y⁰-plot-skip)
+             let : : members : list-ref x^steps (- (length x^steps) step 1)
+                list-ec (: member-idx 0 (length members) ensemble-member-plot-skip) ; reversed
+                   let : : member : list-ref members member-idx
                      format port "paired = pl.get_cmap('Paired')
 cNorm = mpl.colors.Normalize(vmin=~A, vmax=~A)
 scalarMap = mpl.cm.ScalarMappable(norm=cNorm, cmap=paired)\n" 0 (length member)
                      list-ec (: param-idx 0 (length member) 4) ; step = 4
                         ; plot parameter 0
-                        format port "pl.plot(~A, ~A, marker='.', color=scalarMap.to_rgba(~A), linewidth=0, label='', alpha=0.6, zorder=-1)\n" (/ step 10) (+ 80 (* 60 (list-ref member param-idx))) param-idx
+                        format port "pl.plot(~A, ~A, marker='.', color=scalarMap.to_rgba(~A), linewidth=0, label='', alpha=0.6, zorder=-1)\n" (/ step y⁰-plot-skip) (+ 80 (* 60 (list-ref member param-idx))) param-idx
         format port "pl.legend(loc='upper right')\n"
         format port "pl.xlabel('position [arbitrary units]')\n"
         format port "pl.ylabel('value [arbitrary units]')\n"