Skip to content

Commit 7d9feb8

Browse files
committed
Additional Sankey plots
1 parent fdfa5a0 commit 7d9feb8

File tree

3 files changed

+32
-4
lines changed

3 files changed

+32
-4
lines changed

src/clj/witan/send/charts.clj

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,15 +73,27 @@
7373
(sankey {:title "Joiner transitions"}))
7474
(move-file "Rplots.pdf" (str "target/Joiner_Transitions.pdf")))
7575

76-
(defn sankey-setting-specific [data setting-to]
76+
(defn sankey-setting-specific-transitions [data setting-to]
7777
(->> data
7878
(remove v/joiner?)
7979
(remove v/leaver?)
8080
(filter #(= (:setting-2 %) setting-to))
8181
(map #(-> (update % :setting-1 name) (update :setting-2 name)))
8282
(gather-set-data :to "From" "To")
8383
(seq-of-maps->data-frame)
84-
(sankey {:title (str "Joiner transitions")}))
84+
(sankey {:title (str "Mover transitions")}))
85+
(move-file "Rplots.pdf" (str "target/" (name setting-to) "_Transitions.pdf")))
86+
87+
(defn sankey-setting-specific-movers-to [data setting-to]
88+
(->> data
89+
(remove v/joiner?)
90+
(remove v/leaver?)
91+
(filter #(= (:setting-2 %) setting-to))
92+
(filter #(not= (:setting-1 %) setting-to))
93+
(map #(-> (update % :setting-1 name) (update :setting-2 name)))
94+
(gather-set-data :to "From" "To")
95+
(seq-of-maps->data-frame)
96+
(sankey {:title (str "Mover transitions")}))
8597
(move-file "Rplots.pdf" (str "target/" (name setting-to) "_Mover_Transitions.pdf")))
8698

8799
(defn pull-year

src/clj/witan/send/send.clj

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -560,8 +560,10 @@
560560
(= setting-2 sc/non-send))) transitions-data)
561561
mover-rates (mover-rate filter-movers)
562562
mover-rates-CI (map #(confidence-interval mover-rates %) years)
563+
n-colours (take (count years) ch/palette)
563564
;;n-colours (vec (repeatedly (count years) ch/random-colour)) ;; alternative random colour selection
564-
n-colours (take (count years) ch/palette)]
565+
;;future-transitions (mapcat u/projection->transitions projection) ;; for projection investigation
566+
]
565567
(report/info "First year of input data: " (report/bold (first years)))
566568
(report/info "Final year of input data: " (report/bold (inc (last years))))
567569
(report/info "Final year of projection: " (report/bold (+ (last years) (count (map :total-in-send send-output)))))
@@ -646,7 +648,7 @@
646648
(run! #(ch/sankey-transitions transitions-data % valid-settings) years)
647649
(ch/sankey-joiners transitions-data)
648650
(when (not= 1 modify-transition-by)
649-
(run! (partial ch/sankey-setting-specific transitions-data) (map :setting-1 (ds/row-maps settings-to-change))))
651+
(run! (partial ch/sankey-setting-specific-transitions transitions-data) (map :setting-1 (ds/row-maps settings-to-change))))
650652
(ch/ribbon-plot joiner-rates-CI "Joiner" years n-colours)
651653
(ch/ribbon-plot leaver-rates-CI "Leaver" years n-colours)
652654
(ch/ribbon-plot mover-rates-CI "Mover" years n-colours)

src/clj/witan/send/utils.clj

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -352,3 +352,17 @@
352352

353353
(defn int-ceil [n]
354354
(int (Math/ceil n)))
355+
356+
(defn projection-state-to-map [[calendar-year-2 ay-2 state-1 state-2]]
357+
(let [[need-1 setting-1] (states/need-setting state-1)
358+
[need-2 setting-2] (states/need-setting state-2)]
359+
(hash-map :calendar-year calendar-year-2
360+
:setting-1 setting-1
361+
:need-1 need-1
362+
:academic-year-1 (dec ay-2)
363+
:setting-2 setting-2
364+
:need-2 need-2
365+
:academic-year-2 ay-2)))
366+
367+
(defn projection->transitions [[state sum]]
368+
(repeat sum (projection-state-to-map state)))

0 commit comments

Comments
 (0)