// General container
var container = $('.visualization');
// Graph container
var divChart = $('
').appendTo(container);
// Settings: ways to group data
var groupings = {
datetime: {
century: {
truncate: function(x) {return x.substr(0, 2)},
next: function(x) {x = new Date(x); x.setFullYear(x.getFullYear()+100); return x;},
},
decade: {
truncate: function(x) {return x.substr(0, 3)},
next: function(x) {x = new Date(x); x.setFullYear(x.getFullYear()+10); return x;},
},
year: {
truncate: function(x) {return x.substr(0, 4)},
next: function(x) {x = new Date(x); x.setFullYear(x.getFullYear()+1); return x;},
},
month: {
truncate: function(x) {return x.substr(0, 7)},
next: function(x) {x = new Date(x); x.setMonth(x.getMonth()+1); return x;},
},
day: {
truncate: function(x) {return x.substr(0, 10)},
next: function(x) {x = new Date(x); x.setDate(x.getDate()+1); return x;},
},
},
numeric: {
unit: {
truncate: function(x) {return Math.round(x)},
next: function(x) {return x+1;},
},
},
};
var graphIt = function(corpusId, getDataCollection, groupingKey, smoothing) {
divChart.empty();
// Get data from server
var dimensions;
var series = [];
$.each(getDataCollection, function(i, getData) {
var responseData;
$.ajax('/api/corpus/' + corpusId + '/data', {
async: false,
success: function(response) {responseData = response;},
data: getData,
});
dimensions = responseData.dimensions;
// add to the series
series.push({
name: '#' + i,
data: responseData.list,
});
});
var grouping = groupings.datetime[groupingKey];
// generate associative data
var associativeData = {};
for (var s=0; s
dimension.extrema.max) {
dimension.extrema.max = value;
}
row[d] = value;
}
keys[row[0]] = true;
}
// interpolation
var xMin = dimensions[0].extrema.min;
var xMax = dimensions[0].extrema.max;
for (var x=xMin; x row2[0];
});
// do the graph!
// var labels = [dimensions[0].key];
// for (var k=0; k').prependTo(container);
var inputSmoothing = $('').prependTo(container).blur(function() {
var val = $(this).val();
if (isNaN(val)) {
val = 1;
}
val = Math.round(val);
if (val < 1) {
val = 1;
}
$(this).val(val);
}).val(1);
container.prepend(' with a smoothing of ');
var selectGrouping = $('