X-Git-Url: https://adrianiainlam.tk/git/?a=blobdiff_plain;f=dygraph-layout.js;h=4938ada60b6d68d9ffa329a4d0c14e99ada7ef93;hb=6a4457b403f78ba559550f97330ac25ee4d9629f;hp=328da815585689de7241550d6336c1cff97502c7;hpb=795b16307db2a673ba7aa3452f6f6b0e93baeb3a;p=dygraphs.git diff --git a/dygraph-layout.js b/dygraph-layout.js index 328da81..4938ada 100644 --- a/dygraph-layout.js +++ b/dygraph-layout.js @@ -32,6 +32,7 @@ var DygraphLayout = function(dygraph) { this.dygraph_ = dygraph; this.datasets = []; + this.setNames = []; this.annotations = []; this.yAxes_ = null; @@ -46,7 +47,8 @@ DygraphLayout.prototype.attr_ = function(name) { }; DygraphLayout.prototype.addDataset = function(setname, set_xy) { - this.datasets[setname] = set_xy; + this.datasets.push(set_xy); + this.setNames.push(setname); }; DygraphLayout.prototype.getPlotArea = function() { @@ -162,9 +164,8 @@ DygraphLayout.prototype._evaluateLimits = function() { this.minxval = this.dateWindow_[0]; this.maxxval = this.dateWindow_[1]; } else { - for (var name in this.datasets) { - if (!this.datasets.hasOwnProperty(name)) continue; - var series = this.datasets[name]; + for (var setIdx = 0; setIdx < this.datasets.length; ++setIdx) { + var series = this.datasets[setIdx]; if (series.length > 1) { var x1 = series[0][0]; if (!this.minxval || x1 < this.minxval) this.minxval = x1; @@ -212,13 +213,15 @@ DygraphLayout.prototype._evaluateLineCharts = function() { // for every data set since the points are added in order of the sets in // datasets. this.setPointsLengths = []; + this.setPointsOffsets = []; - for (var setName in this.datasets) { - if (!this.datasets.hasOwnProperty(setName)) continue; - - var dataset = this.datasets[setName]; + var connectSeparated = this.attr_('connectSeparatedPoints'); + for (var setIdx = 0; setIdx < this.datasets.length; ++setIdx) { + var dataset = this.datasets[setIdx]; + var setName = this.setNames[setIdx]; var axis = this.dygraph_.axisPropertiesForSeries(setName); + this.setPointsOffsets.push(this.points.length); var setPointsLength = 0; for (var j = 0; j < dataset.length; j++) { @@ -239,6 +242,9 @@ DygraphLayout.prototype._evaluateLineCharts = function() { yval: yValue, name: setName }; + if (connectSeparated && item[1] === null) { + point.yval = null; + } this.points.push(point); setPointsLength += 1; } @@ -283,10 +289,10 @@ DygraphLayout.prototype.evaluateWithError = function() { // Copy over the error terms var i = 0; // index in this.points - for (var setName in this.datasets) { - if (!this.datasets.hasOwnProperty(setName)) continue; + for (var setIdx = 0; setIdx < this.datasets.length; ++setIdx) { var j = 0; - var dataset = this.datasets[setName]; + var dataset = this.datasets[setIdx]; + var setName = this.setNames[setIdx]; var axis = this.dygraph_.axisPropertiesForSeries(setName); for (j = 0; j < dataset.length; j++, i++) { var item = dataset[j]; @@ -340,7 +346,13 @@ DygraphLayout.prototype._evaluateAnnotations = function() { */ DygraphLayout.prototype.removeAllDatasets = function() { delete this.datasets; + delete this.setNames; + delete this.setPointsLengths; + delete this.setPointsOffsets; this.datasets = []; + this.setNames = []; + this.setPointsLengths = []; + this.setPointsOffsets = []; }; /**