Mercurial > hg > webaudioevaluationtool
comparison analysis/analysis.js @ 569:04a64127ebd0 Dev_main
Analysis: Mean bar plot
author | Nicholas Jillings <n.g.r.jillings@se14.qmul.ac.uk> |
---|---|
date | Tue, 23 Feb 2016 19:35:18 +0000 |
parents | 45f5514b5077 |
children | 1f23b2b03610 |
comparison
equal
deleted
inserted
replaced
568:03e713d870cf | 569:04a64127ebd0 |
---|---|
8 google.charts.load('current', {'packages':['corechart']}); | 8 google.charts.load('current', {'packages':['corechart']}); |
9 chartContext = new Chart(); | 9 chartContext = new Chart(); |
10 } | 10 } |
11 | 11 |
12 function Chart() { | 12 function Chart() { |
13 this.data = null; | 13 this.valueData = null; |
14 this.commentData = null; | |
15 this.loadStatus = 0; | |
14 | 16 |
15 this.getValueData = function() { | 17 var XMLHttp = new XMLHttpRequest(); |
16 var XMLHttp = new XMLHttpRequest(); | 18 XMLHttp.parent = this; |
17 XMLHttp.parent = this; | 19 XMLHttp.open("GET","../scripts/score_parser.php?format=JSON",true); |
18 XMLHttp.open("GET","comment_parser.php?format=JSON",true); | 20 XMLHttp.onload = function() { |
19 XMLHttp.onload = function() { | 21 // Now we have the JSON data, extract |
20 // Now we have the JSON data, extract | 22 this.parent.valueData = JSON.parse(this.responseText); |
21 this.parent.data = JSON.parse(this.responseText); | 23 this.parent.loadStatus++; |
22 } | |
23 XMLHttp.send(); | |
24 } | 24 } |
25 XMLHttp.send(); | |
26 var XMLHttp2 = new XMLHttpRequest(); | |
27 XMLHttp2.parent = this; | |
28 XMLHttp2.open("GET","../scripts/comment_parser.php?format=JSON",true); | |
29 XMLHttp2.onload = function() { | |
30 // Now we have the JSON data, extract | |
31 this.parent.commentData = JSON.parse(this.responseText); | |
32 this.parent.loadStatus++; | |
33 } | |
34 XMLHttp2.send(); | |
25 | 35 |
26 this.drawMean = function() { | 36 this.drawMean = function() { |
27 // First we must get the value data | 37 // First we must get the value data |
38 if (this.valueData == null) { | |
39 console.log("Error - Data not loaded"); | |
40 return; | |
41 } | |
42 // We create one plot per page | |
43 for (var page of this.valueData.pages) { | |
44 // First, create the chart resulting point | |
45 var inject = document.createElement("div"); | |
46 document.getElementById("test-pages").appendChild(inject); | |
47 | |
48 // Create the data table | |
49 var data = new google.visualization.DataTable(); | |
50 data.addColumn('string','id'); | |
51 // Get axis labels | |
52 for (var axis of page.elements[0].axis) { | |
53 data.addColumn('number',axis.name); | |
54 } | |
55 var rows = []; // Rows is an array of tuples [col1, col2, col3 ... colN]; | |
56 for (var element of page.elements) { | |
57 var entry = [element.id]; | |
58 for (var i=0; i<page.elements[0].axis.length; i++) { | |
59 var mean =0; | |
60 if (i < element.axis.length) { | |
61 var axis = element.axis[i]; | |
62 for (var value of axis.values) { | |
63 mean += value; | |
64 } | |
65 mean /= axis.values.length; | |
66 } | |
67 entry.push(mean); | |
68 } | |
69 rows.push(entry); | |
70 } | |
71 data.addRows(rows); | |
72 var options = {'title':'Mean of page: '+page.id, | |
73 'width':800, | |
74 'height':700}; | |
75 // Draw the chart | |
76 var chart = new google.visualization.ColumnChart(inject); | |
77 chart.draw(data,options); | |
78 } | |
28 } | 79 } |
29 } | 80 } |