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 }