|
|
|
@ -11,6 +11,8 @@ let yAxis = 'outcomes'
|
|
|
|
let bottomAxis;
|
|
|
|
let bottomAxis;
|
|
|
|
let leftAxis;
|
|
|
|
let leftAxis;
|
|
|
|
let zoomScale = 1
|
|
|
|
let zoomScale = 1
|
|
|
|
|
|
|
|
let averageOutcomes = []
|
|
|
|
|
|
|
|
let sortedInstances;
|
|
|
|
|
|
|
|
|
|
|
|
const randomColor = ()=>{
|
|
|
|
const randomColor = ()=>{
|
|
|
|
const red = Math.floor(Math.random()*128) + 64;
|
|
|
|
const red = Math.floor(Math.random()*128) + 64;
|
|
|
|
@ -261,6 +263,23 @@ const setUpZoomPan = ()=>{
|
|
|
|
d3.select('#container').call(zoom);
|
|
|
|
d3.select('#container').call(zoom);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const getAverage = (start, end) => {
|
|
|
|
|
|
|
|
let sum = 0
|
|
|
|
|
|
|
|
for(let i = start; i < end; i++){
|
|
|
|
|
|
|
|
sum += sortedInstances[i].ninety_day_outcomes/sortedInstances[i].graduates*100
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
averageOutcomes.push({average:sum/(end-start), initialGraduationDate:sortedInstances[start].graduation_date})
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const displayMeanStandardDeviation = () => {
|
|
|
|
|
|
|
|
sortedInstances = instances.sort((a,b) => Date.parse(a.graduation_date) - Date.parse(b.graduation_date))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for(let i = 0; i < sortedInstances.length-10; i += 10){
|
|
|
|
|
|
|
|
getAverage(i,i+10)
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
console.log(averageOutcomes);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
window.onload = async ()=>{
|
|
|
|
window.onload = async ()=>{
|
|
|
|
instances = await d3.json('/instances');
|
|
|
|
instances = await d3.json('/instances');
|
|
|
|
for(let instance of instances){
|
|
|
|
for(let instance of instances){
|
|
|
|
@ -282,4 +301,6 @@ window.onload = async ()=>{
|
|
|
|
createFormSubmissionHandler();
|
|
|
|
createFormSubmissionHandler();
|
|
|
|
createRadioButtonHanlders();
|
|
|
|
createRadioButtonHanlders();
|
|
|
|
setUpZoomPan();
|
|
|
|
setUpZoomPan();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
displayMeanStandardDeviation();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|