JavaScript
$(function () {
var d1 = [
[Date.UTC(2014,0,16), 173.33],
[Date.UTC(2014,0,23), 163.33],
[Date.UTC(2014,0,30), 137.67],
[Date.UTC(2014,1,6), 176.33],
[Date.UTC(2014,1,13), 178.67],
[Date.UTC(2014,1,27), 167.33],
];
var d2 = [
[Date.UTC(2014,0,11), 156.33],
[Date.UTC(2014,1,15), 167.67],
];
var d3 = [
[Date.UTC(2014,0,1), 135],
[Date.UTC(2014,0,5), 146.33],
[Date.UTC(2014,0,27), 146.75],
];
xs = []; ys = [];
var minX = 1E100;
var maxX = -1E100;
$.each([d1,d2,d3], function(i,j){
$.each(j, function(i,k){
if (k[0] < minX) minX = k[0];
if (k[0] > maxX) maxX = k[0];
xs.push(k[0]);
ys.push(k[1]);
});
});
reg = {}
lineFit(xs,ys,reg);
$('#chart').highcharts({
chart: { type: 'spline' },
title: { text: '' },
xAxis: { type: 'datetime' },
yAxis: {
title: { text: '' }
},
series: [{
name: 'Line 1',
data: d1,
color: 'purple'
},
{
name: 'Line 2',
data: d2,
color: 'green'
},
{
name: 'Line 3',
data: d3,
color: 'blue'
},
{
name: 'Regression Line',
data: [[minX, reg.slope * minX + reg.intercept],
[maxX, reg.slope * maxX + reg.intercept]],
color: 'red',
marker:{enabled:false},
lineWidth: 5
}]
});
});
//utility functions
lineFit = function(xs, ys, rV){
rV.slope = 0.0;
rV.intercept = 0.0;
rV.rSquared = 1.0; // assume perfection
if (xs.length < 2)
{
return false;
}
if (xs.Count != ys.Count)
{
return false;
}
var N = xs.length;
var sumX =...