From 230f4527a286cc5dc6b17f754bee0b02720da99a Mon Sep 17 00:00:00 2001 From: Marsup Date: Tue, 10 Sep 2013 15:41:14 +0200 Subject: [PATCH] Keep same references on data --- src/models/discreteBar.js | 12 +++++------ src/models/multiBar.js | 16 +++++++------- src/models/multiBarHorizontal.js | 12 +++++------ src/models/multiBarTimeSeries.js | 10 ++++----- src/models/stackedArea.js | 36 +++++++++++++++----------------- src/models/stackedAreaChart.js | 16 +++++++------- 6 files changed, 45 insertions(+), 57 deletions(-) diff --git a/src/models/discreteBar.js b/src/models/discreteBar.js index 5dd51a8..a20f582 100644 --- a/src/models/discreteBar.js +++ b/src/models/discreteBar.js @@ -45,12 +45,10 @@ nv.models.discreteBar = function() { //add series index to each data point for reference - data = data.map(function(series, i) { - series.values = series.values.map(function(point) { + data.forEach(function(series, i) { + series.values.forEach(function(point) { point.series = i; - return point; }); - return series; }); @@ -126,7 +124,7 @@ nv.models.discreteBar = function() { var barsEnter = bars.enter().append('g') .attr('transform', function(d,i,j) { - return 'translate(' + (x(getX(d,i)) + x.rangeBand() * .05 ) + ', ' + y(0) + ')' + return 'translate(' + (x(getX(d,i)) + x.rangeBand() * .05 ) + ', ' + y(0) + ')' }) .on('mouseover', function(d,i) { //TODO: figure out why j works above, but not here d3.select(this).classed('hover', true); @@ -190,7 +188,7 @@ nv.models.discreteBar = function() { .transition() .attr('x', x.rangeBand() * .9 / 2) .attr('y', function(d,i) { return getY(d,i) < 0 ? y(getY(d,i)) - y(0) + 12 : -4 }) - + ; } else { bars.selectAll('text').remove(); @@ -239,7 +237,7 @@ nv.models.discreteBar = function() { chart.dispatch = dispatch; chart.options = nv.utils.optionsFunc.bind(chart); - + chart.x = function(_) { if (!arguments.length) return getX; getX = _; diff --git a/src/models/multiBar.js b/src/models/multiBar.js index e79597e..1085919 100644 --- a/src/models/multiBar.js +++ b/src/models/multiBar.js @@ -68,12 +68,10 @@ nv.models.multiBar = function() { //add series index to each data point for reference - data = data.map(function(series, i) { - series.values = series.values.map(function(point) { + data.forEach(function(series, i) { + series.values.forEach(function(point) { point.series = i; - return point; }); - return series; }); @@ -89,7 +87,7 @@ nv.models.multiBar = function() { f.y1 = negBase; negBase = negBase - f.size; } else - { + { f.y1 = f.size + posBase; posBase = posBase + f.size; } @@ -168,7 +166,7 @@ nv.models.multiBar = function() { groups.exit() .transition() .selectAll('rect.nv-bar') - .delay(function(d,i) { + .delay(function(d,i) { return i * delay/ data[0].values.length; }) .attr('y', function(d) { return stacked ? y0(d.y0) : y0(0) }) @@ -266,7 +264,7 @@ nv.models.multiBar = function() { if (stacked) bars.transition() - .delay(function(d,i) { + .delay(function(d,i) { return i * delay / data[0].values.length; }) @@ -283,7 +281,7 @@ nv.models.multiBar = function() { .attr('width', x.rangeBand() / (stacked ? 1 : data.length) ); else bars.transition() - .delay(function(d,i) { + .delay(function(d,i) { return i * delay/ data[0].values.length; }) .attr('x', function(d,i) { @@ -320,7 +318,7 @@ nv.models.multiBar = function() { chart.dispatch = dispatch; chart.options = nv.utils.optionsFunc.bind(chart); - + chart.x = function(_) { if (!arguments.length) return getX; getX = _; diff --git a/src/models/multiBarHorizontal.js b/src/models/multiBarHorizontal.js index 9c17dad..d16d460 100644 --- a/src/models/multiBarHorizontal.js +++ b/src/models/multiBarHorizontal.js @@ -58,12 +58,10 @@ nv.models.multiBarHorizontal = function() { //add series index to each data point for reference - data = data.map(function(series, i) { - series.values = series.values.map(function(point) { + data.forEach(function(series, i) { + series.values.forEach(function(point) { point.series = i; - return point; }); - return series; }); @@ -80,7 +78,7 @@ nv.models.multiBarHorizontal = function() { f.y1 = negBase - f.size; negBase = negBase - f.size; } else - { + { f.y1 = posBase; posBase = posBase + f.size; } @@ -257,7 +255,7 @@ nv.models.multiBarHorizontal = function() { bars.transition() .attr('transform', function(d,i) { //TODO: stacked must be all positive or all negative, not both? - return 'translate(' + + return 'translate(' + (getY(d,i) < 0 ? y(getY(d,i)) : y(0)) + ',' + (d.series * x.rangeBand() / data.length @@ -289,7 +287,7 @@ nv.models.multiBarHorizontal = function() { chart.dispatch = dispatch; chart.options = nv.utils.optionsFunc.bind(chart); - + chart.x = function(_) { if (!arguments.length) return getX; getX = _; diff --git a/src/models/multiBarTimeSeries.js b/src/models/multiBarTimeSeries.js index 8c1f75b..abc062c 100644 --- a/src/models/multiBarTimeSeries.js +++ b/src/models/multiBarTimeSeries.js @@ -52,12 +52,10 @@ nv.models.multiBarTimeSeries = function() { //add series index to each data point for reference - data = data.map(function(series, i) { - series.values = series.values.map(function(point) { + data.forEach(function(series, i) { + series.values.forEach(function(point) { point.series = i; - return point; }); - return series; }); //------------------------------------------------------------ @@ -156,10 +154,10 @@ nv.models.multiBarTimeSeries = function() { for(var ei=0; ei