X-Git-Url: https://adrianiainlam.tk/git/?a=blobdiff_plain;f=datahandler%2Fbars-error.js;fp=datahandler%2Fbars-error.js;h=0000000000000000000000000000000000000000;hb=3123ca57f71d145bb5bcc4a2f754d3dff3225346;hp=71dbe34ce01b8ccec83f04bd91ede6f9571ddcf9;hpb=26ee953643ccd2d32e38e6b60b20e6a01c1dc9ba;p=dygraphs.git diff --git a/datahandler/bars-error.js b/datahandler/bars-error.js deleted file mode 100644 index 71dbe34..0000000 --- a/datahandler/bars-error.js +++ /dev/null @@ -1,102 +0,0 @@ -/** - * @license - * Copyright 2013 David Eberlein (david.eberlein@ch.sauter-bc.com) - * MIT-licensed (http://opensource.org/licenses/MIT) - */ - -/** - * @fileoverview DataHandler implementation for the error bars option. - * @author David Eberlein (david.eberlein@ch.sauter-bc.com) - */ - -(function() { - -/*global Dygraph:false */ -"use strict"; - -/** - * @constructor - * @extends Dygraph.DataHandlers.BarsHandler - */ -Dygraph.DataHandlers.ErrorBarsHandler = function() { -}; - -var ErrorBarsHandler = Dygraph.DataHandlers.ErrorBarsHandler; -ErrorBarsHandler.prototype = new Dygraph.DataHandlers.BarsHandler(); - -/** @inheritDoc */ -ErrorBarsHandler.prototype.extractSeries = function(rawData, i, options) { - // TODO(danvk): pre-allocate series here. - var series = []; - var x, y, variance, point; - var sigma = options.get("sigma"); - var logScale = options.get('logscale'); - for ( var j = 0; j < rawData.length; j++) { - x = rawData[j][0]; - point = rawData[j][i]; - if (logScale && point !== null) { - // On the log scale, points less than zero do not exist. - // This will create a gap in the chart. - if (point[0] <= 0 || point[0] - sigma * point[1] <= 0) { - point = null; - } - } - // Extract to the unified data format. - if (point !== null) { - y = point[0]; - if (y !== null && !isNaN(y)) { - variance = sigma * point[1]; - // preserve original error value in extras for further - // filtering - series.push([ x, y, [ y - variance, y + variance, point[1] ] ]); - } else { - series.push([ x, y, [ y, y, y ] ]); - } - } else { - series.push([ x, null, [ null, null, null ] ]); - } - } - return series; -}; - -/** @inheritDoc */ -ErrorBarsHandler.prototype.rollingAverage = - function(originalData, rollPeriod, options) { - rollPeriod = Math.min(rollPeriod, originalData.length); - var rollingData = []; - var sigma = options.get("sigma"); - - var i, j, y, v, sum, num_ok, stddev, variance, value; - - // Calculate the rolling average for the first rollPeriod - 1 points - // where there is not enough data to roll over the full number of points - for (i = 0; i < originalData.length; i++) { - sum = 0; - variance = 0; - num_ok = 0; - for (j = Math.max(0, i - rollPeriod + 1); j < i + 1; j++) { - y = originalData[j][1]; - if (y === null || isNaN(y)) - continue; - num_ok++; - sum += y; - variance += Math.pow(originalData[j][2][2], 2); - } - if (num_ok) { - stddev = Math.sqrt(variance) / num_ok; - value = sum / num_ok; - rollingData[i] = [ originalData[i][0], value, - [value - sigma * stddev, value + sigma * stddev] ]; - } else { - // This explicitly preserves NaNs to aid with "independent - // series". - // See testRollingAveragePreservesNaNs. - v = (rollPeriod == 1) ? originalData[i][1] : null; - rollingData[i] = [ originalData[i][0], v, [ v, v ] ]; - } - } - - return rollingData; -}; - -})();