|
60 | 60 | ^{::clerk/visibility {:code :hide :result :hide}} |
61 | 61 | (def x-samples [2.0 4.0 5.0 6.0 7.0 8.0 9.0]) |
62 | 62 | ^{::clerk/visibility {:code :hide :result :hide}} |
63 | | -(def chart-range (vec (range 2.0 9.0 0.05))) |
| 63 | +(def chart-range (mapv #(+ 2.0 (* 0.05 %)) (range 141))) |
64 | 64 |
|
65 | 65 | ;; ### Key API: Creating a 1D Interpolation Function |
66 | 66 | ;; |
|
132 | 132 | ;; `:polynomial` and `:barycentric-rational` can oscillate, while `:linear` is a rough approximation. |
133 | 133 |
|
134 | 134 | ^{::clerk/visibility {:code :hide :result :hide}} |
135 | | -(def chart-range-short (vec (range 2.0 6.0 0.05))) |
| 135 | +(def chart-range-short (mapv #(+ 2.0 (* 0.05 %)) (range 81))) |
136 | 136 | ^{::clerk/visibility {:code :hide :result :hide}} |
137 | 137 | (def x-samples-short [2.0 4.0 5.0 6.0]) |
138 | 138 |
|
|
166 | 166 | ^{::clerk/visibility {:code :hide :result :hide}} |
167 | 167 | (defn runge-fn [x] (/ 1.0 (+ 1.0 (* 25.0 (m/sq x))))) |
168 | 168 | ^{::clerk/visibility {:code :hide :result :hide}} |
169 | | -(def runge-samples-5 (vec (range -1.0 1.01 0.5))) |
| 169 | +(def runge-samples-5 (mapv #(+ -1.0 (* 0.5 %)) (range 5))) |
170 | 170 | ^{::clerk/visibility {:code :hide :result :hide}} |
171 | | -(def runge-samples-11 (vec (range -1.0 1.01 0.2))) |
| 171 | +(def runge-samples-11 (mapv #(+ -1.0 (* 0.2 %)) (range 11))) |
172 | 172 | ^{::clerk/visibility {:code :hide :result :hide}} |
173 | | -(def runge-chart-range (vec (range -1.0 1.005 0.01))) |
| 173 | +(def runge-chart-range (mapv #(+ -1.0 (* 0.01 %)) (range 201))) |
174 | 174 | ^{::clerk/visibility {:code :hide :result :hide}} |
175 | 175 | (defn runge-original [chart-vals] |
176 | 176 | (mapv (fn [x] {:Type "original" :X x :Y (runge-fn x)}) chart-vals)) |
|
369 | 369 |
|
370 | 370 | ^{::clerk/visibility {:code :hide :result :hide}} |
371 | 371 | (def extrap-samples [3.0 4.0 5.0 6.0 7.0]) |
372 | | -(def extrap-chart-range (vec (range 1.0 9.0 0.05))) |
| 372 | +(def extrap-chart-range (mapv #(+ 1.0 (* 0.05 %)) (range 161))) |
373 | 373 |
|
374 | 374 | ;; Extrapolation modes: `:flat`, `:linear`, or `:error` (default) |
375 | 375 |
|
|
507 | 507 | ^{::clerk/visibility {:code :hide :result :hide}} |
508 | 508 | (def hours [1 9 12 16 21]) |
509 | 509 | (def values [5 6 7 3 4]) |
510 | | -(def chart-hours (vec (range 0.0 24.0 0.1))) |
| 510 | +(def chart-hours (mapv #(* 0.1 %) (range 241))) |
511 | 511 |
|
512 | 512 | ;; Periodic interpolation using `::period` option |
513 | 513 |
|
|
561 | 561 | ^{::clerk/visibility {:code :hide :result :hide}} |
562 | 562 | (def hours-extended [-3 1 9 12 16 21 25]) |
563 | 563 | (def values-extended [4 5 6 7 3 4 5]) |
564 | | -(def chart-hours-extended (vec (range -3.0 25.0 0.1))) |
| 564 | +(def chart-hours-extended (mapv #(+ -3.0 (* 0.1 %)) (range 281))) |
565 | 565 |
|
566 | 566 | ^{::clerk/visibility {:code :hide :result :show} ::clerk/width :wide} |
567 | 567 | (let [all-types [:akima :cubic :cubic-closed :cubic-hermite :linear :pchip] |
|
668 | 668 | ^{::clerk/visibility {:code :hide :result :hide}} |
669 | 669 | (def x-2d-samples [2.0 3.0 4.0 5.0 6.0]) |
670 | 670 | (def y-2d-samples [18.0 20.0 21.0 23.0 26.0 45.0]) |
671 | | -(def chart-x-2d (vec (range 2.0 6.0 0.1))) |
672 | | -(def chart-y-2d (vec (range 18.0 45.0 0.5))) |
| 671 | +(def chart-x-2d (mapv #(+ 2.0 (* 0.1 %)) (range 41))) |
| 672 | +(def chart-y-2d (mapv #(+ 18.0 (* 0.5 %)) (range 55))) |
673 | 673 |
|
674 | 674 | ^{::clerk/visibility {:code :hide :result :hide}} |
675 | 675 | (defn heatmap-data |
|
876 | 876 | ;; We can visualize a 2D slice through the 3D interpolation (fixing z = 1.5). |
877 | 877 |
|
878 | 878 | ^{::clerk/visibility {:code :hide :result :hide}} |
879 | | -(def chart-x-3d (vec (range 1.0 4.0 0.1))) |
880 | | -(def chart-y-3d (vec (range 1.0 4.0 0.1))) |
| 879 | +(def chart-x-3d (mapv #(+ 1.0 (* 0.1 %)) (range 31))) |
| 880 | +(def chart-y-3d (mapv #(+ 1.0 (* 0.1 %)) (range 31))) |
881 | 881 | (def fixed-z 1.5) |
882 | 882 |
|
883 | 883 | ;; ### 3D Grid Interpolation API |
|
958 | 958 | (mapv (fn [[x y]] (scattered-fn x y)) scattered-points)) |
959 | 959 |
|
960 | 960 | ^{::clerk/visibility {:code :hide :result :hide}} |
961 | | -(def scattered-chart-x (vec (range 0.0 4.0 0.1))) |
962 | | -(def scattered-chart-y (vec (range 0.0 4.0 0.1))) |
| 961 | +(def scattered-chart-x (mapv #(* 0.1 %) (range 41))) |
| 962 | +(def scattered-chart-y (mapv #(* 0.1 %) (range 41))) |
963 | 963 |
|
964 | 964 | ;; ### Scattered Data: Natural Neighbor API |
965 | 965 |
|
|
1183 | 1183 | (def station-temps (mapv (fn [[_ _ t]] t) weather-stations)) |
1184 | 1184 |
|
1185 | 1185 | ^{::clerk/visibility {:code :hide :result :hide}} |
1186 | | -(def lat-range (vec (range 25.0 50.0 0.5))) |
1187 | | -(def lon-range (vec (range -125.0 -70.0 1.0))) |
| 1186 | +(def lat-range (mapv #(+ 25.0 (* 0.5 %)) (range 51))) |
| 1187 | +(def lon-range (mapv #(+ -125.0 %) (range 56))) |
1188 | 1188 |
|
1189 | 1189 | ;; ### Temperature Interpolation Across the US |
1190 | 1190 | ;; |
|
0 commit comments