Public
Edited
Jul 9, 2024
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
decisions = webdata.message.decisions;
Insert cell
Insert cell
scripts = candidates
.map((c, i) => ({ url: c.scans[0], school: getSchool(i), id: `script ${i}` }))
.slice(0, 15)
Insert cell
Insert cell
//{0,1} {0,2} {0,3} {0,4} {1,2} {1,3} {1,4} {2,3} {2,4} {3,4}
Insert cell
pairs = [
{ source: 'script 0', target: 'script 1', value: 1, judge: 'green' },
{ source: 'script 0', target: 'script 2', value: 1, judge: 'green' },
{ source: 'script 0', target: 'script 3', value: 1, judge: 'green' },
{ source: 'script 0', target: 'script 4', value: 1, judge: 'green' },
{ source: 'script 9', target: 'script 10', value: 1, judge: 'green' },
{ source: 'script 1', target: 'script 2', value: 1, judge: 'green' },
{ source: 'script 1', target: 'script 3', value: 1, judge: 'green' },
{ source: 'script 1', target: 'script 4', value: 1, judge: 'green' },
{ source: 'script 2', target: 'script 3', value: 1, judge: 'green' },
{ source: 'script 8', target: 'script 11', value: 1, judge: 'green' },
{ source: 'script 2', target: 'script 4', value: 1, judge: 'green' },
{ source: 'script 3', target: 'script 4', value: 1, judge: 'green' },
{ source: 'script 0', target: 'script 1', value: 2, judge: 'green' },
{ source: 'script 0', target: 'script 2', value: 2, judge: 'green' },
{ source: 'script 7', target: 'script 12', value: 1, judge: 'green' },
{ source: 'script 5', target: 'script 6', value: 1, judge: 'purple' },
{ source: 'script 5', target: 'script 7', value: 1, judge: 'purple' },
{ source: 'script 5', target: 'script 8', value: 1, judge: 'purple' },
{ source: 'script 5', target: 'script 9', value: 1, judge: 'purple' },
{ source: 'script 0', target: 'script 14', value: 1, judge: 'purple' },
{ source: 'script 6', target: 'script 7', value: 1, judge: 'purple' },
{ source: 'script 6', target: 'script 8', value: 1, judge: 'purple' },
{ source: 'script 6', target: 'script 9', value: 1, judge: 'purple' },
{ source: 'script 7', target: 'script 8', value: 1, judge: 'purple' },
{ source: 'script 1', target: 'script 13', value: 1, judge: 'purple' },
{ source: 'script 7', target: 'script 9', value: 1, judge: 'purple' },
{ source: 'script 8', target: 'script 9', value: 1, judge: 'purple' },
{ source: 'script 5', target: 'script 6', value: 2, judge: 'purple' },
{ source: 'script 5', target: 'script 7', value: 2, judge: 'purple' },
{ source: 'script 2', target: 'script 12', value: 1, judge: 'purple' },
{ source: 'script 10', target: 'script 11', value: 1, judge: 'orange' },
{ source: 'script 10', target: 'script 12', value: 1, judge: 'orange' },
{ source: 'script 10', target: 'script 13', value: 1, judge: 'orange' },
{ source: 'script 10', target: 'script 14', value: 1, judge: 'orange' },
{ source: 'script 1', target: 'script 5', value: 1, judge: 'orange' },
{ source: 'script 11', target: 'script 12', value: 1, judge: 'orange' },
{ source: 'script 11', target: 'script 13', value: 1, judge: 'orange' },
{ source: 'script 11', target: 'script 14', value: 1, judge: 'orange' },
{ source: 'script 12', target: 'script 13', value: 1, judge: 'orange' },
{ source: 'script 2', target: 'script 6', value: 1, judge: 'orange' },
{ source: 'script 12', target: 'script 14', value: 1, judge: 'orange' },
{ source: 'script 13', target: 'script 14', value: 1, judge: 'orange' },
{ source: 'script 10', target: 'script 11', value: 2, judge: 'orange' },
{ source: 'script 10', target: 'script 12', value: 2, judge: 'orange' },
{ source: 'script 3', target: 'script 7', value: 1, judge: 'orange' }
]
Insert cell
left = scripts.findIndex(s => s.id == pairs[i].source)
Insert cell
Insert cell
Insert cell
rightImage = ({
url: scripts[right].url,
school: scripts[right].school
})
Insert cell
height = 200
Insert cell
Insert cell
data = ({
nodes: scripts,
links: pairs.slice(0, i + 1)
})
Insert cell
Insert cell
import { Scrubber } from "@mbostock/scrubber"
Insert cell

Purpose-built for displays of data

Observable is your go-to platform for exploring data and creating expressive data visualizations. Use reactive JavaScript notebooks for prototyping and a collaborative canvas for visual data exploration and dashboard creation.
Learn more