-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathchartData.js
76 lines (63 loc) · 1.75 KB
/
chartData.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
function genGradeData(chartData) {
var gradeData =
{
labels: ["Freshman", "Sophomore", "Junior", "Senior"],
datasets: [ { data: [0, 0,0, 0] } ]
}; // 4 classes, initialize counts to 0
var tempDataArr = [0, 0, 0, 0];
console.log(chartData);
for(var i = 0; i < chartData.length; i++) {
if(chartData[i].grade == "freshman") {
gradeData.datasets[0].data[0]++;
}
else if (chartData[i].grade == "sophomore") {
gradeData.datasets[0].data[1]++;
}
else if (chartData[i].grade == "junior") {
gradeData.datasets[0].data[2]++;
}
else if (chartData[i].grade == "senior") {
gradeData.datasets[0].chartData[3]++;
}
}
console.log(gradeData.datasets[0].data);
return gradeData
}
function genHoursData(chartData) {
var hoursHist = {};
for(var i = 0; i < chartData.length; i++) {
var avgHours = (chartData[i].hours[0] + chartData[i].hours[1]) / 2;
if (avgHours in hoursHist) {
hoursHist[avgHours] += 1;
}
else { hoursHist[avgHours] = 1; }
}
var hoursKeys = Object.keys(hoursHist);
var hoursData = [];
for(var i = 0; i < hoursKeys.length; i++) {
hoursData.push(hoursHist[hoursKeys[i]]);
}
return {
labels: hoursKeys.map(function (num) { return num.toString(); } ),
datasets: [ {data: hoursData }]
};
}
function getChartData(chartName) {
var jsonData = {}
$.ajax({
dataType: "json",
url: chartName+".json",
async: false,
data: undefined,
success: function(data) {
jsonData = data;
}});
return jsonData;
}
function genChartData(chartName) {
var chartData = getChartData(chartName);
return [
{title: "Grade/Class Distribution", data: genGradeData(chartData)},
{title: "Average Class Hours Taken", data: genHoursData(chartData)}
];
}