|
/** |
|
* Flotr Series Library |
|
*/ |
|
|
|
(function () { |
|
|
|
var |
|
_ = Flotr._; |
|
|
|
function Series (o) { |
|
_.extend(this, o); |
|
} |
|
|
|
Series.prototype = { |
|
|
|
getRange: function () { |
|
|
|
var |
|
data = this.data, |
|
length = data.length, |
|
xmin = Number.MAX_VALUE, |
|
ymin = Number.MAX_VALUE, |
|
xmax = -Number.MAX_VALUE, |
|
ymax = -Number.MAX_VALUE, |
|
xused = false, |
|
yused = false, |
|
x, y, i; |
|
|
|
if (length < 0 || this.hide) return false; |
|
|
|
for (i = 0; i < length; i++) { |
|
x = data[i][0]; |
|
y = data[i][1]; |
|
if (x !== null) { |
|
if (x < xmin) { xmin = x; xused = true; } |
|
if (x > xmax) { xmax = x; xused = true; } |
|
} |
|
if (y !== null) { |
|
if (y < ymin) { ymin = y; yused = true; } |
|
if (y > ymax) { ymax = y; yused = true; } |
|
} |
|
} |
|
|
|
return { |
|
xmin : xmin, |
|
xmax : xmax, |
|
ymin : ymin, |
|
ymax : ymax, |
|
xused : xused, |
|
yused : yused |
|
}; |
|
} |
|
}; |
|
|
|
_.extend(Series, { |
|
/** |
|
* Collects dataseries from input and parses the series into the right format. It returns an Array |
|
* of Objects each having at least the 'data' key set. |
|
* @param {Array, Object} data - Object or array of dataseries |
|
* @return {Array} Array of Objects parsed into the right format ({(...,) data: [[x1,y1], [x2,y2], ...] (, ...)}) |
|
*/ |
|
getSeries: function(data){ |
|
return _.map(data, function(s){ |
|
var series; |
|
if (s.data) { |
|
series = new Series(); |
|
_.extend(series, s); |
|
} else { |
|
series = new Series({data:s}); |
|
} |
|
return series; |
|
}); |
|
} |
|
}); |
|
|
|
Flotr.Series = Series; |
|
|
|
})(); |
|
|