Skip to content

Commit 230f452

Browse files
committed
Keep same references on data
1 parent 550e060 commit 230f452

File tree

6 files changed

+45
-57
lines changed

6 files changed

+45
-57
lines changed

src/models/discreteBar.js

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -45,12 +45,10 @@ nv.models.discreteBar = function() {
4545

4646

4747
//add series index to each data point for reference
48-
data = data.map(function(series, i) {
49-
series.values = series.values.map(function(point) {
48+
data.forEach(function(series, i) {
49+
series.values.forEach(function(point) {
5050
point.series = i;
51-
return point;
5251
});
53-
return series;
5452
});
5553

5654

@@ -126,7 +124,7 @@ nv.models.discreteBar = function() {
126124

127125
var barsEnter = bars.enter().append('g')
128126
.attr('transform', function(d,i,j) {
129-
return 'translate(' + (x(getX(d,i)) + x.rangeBand() * .05 ) + ', ' + y(0) + ')'
127+
return 'translate(' + (x(getX(d,i)) + x.rangeBand() * .05 ) + ', ' + y(0) + ')'
130128
})
131129
.on('mouseover', function(d,i) { //TODO: figure out why j works above, but not here
132130
d3.select(this).classed('hover', true);
@@ -190,7 +188,7 @@ nv.models.discreteBar = function() {
190188
.transition()
191189
.attr('x', x.rangeBand() * .9 / 2)
192190
.attr('y', function(d,i) { return getY(d,i) < 0 ? y(getY(d,i)) - y(0) + 12 : -4 })
193-
191+
194192
;
195193
} else {
196194
bars.selectAll('text').remove();
@@ -239,7 +237,7 @@ nv.models.discreteBar = function() {
239237
chart.dispatch = dispatch;
240238

241239
chart.options = nv.utils.optionsFunc.bind(chart);
242-
240+
243241
chart.x = function(_) {
244242
if (!arguments.length) return getX;
245243
getX = _;

src/models/multiBar.js

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -68,12 +68,10 @@ nv.models.multiBar = function() {
6868

6969

7070
//add series index to each data point for reference
71-
data = data.map(function(series, i) {
72-
series.values = series.values.map(function(point) {
71+
data.forEach(function(series, i) {
72+
series.values.forEach(function(point) {
7373
point.series = i;
74-
return point;
7574
});
76-
return series;
7775
});
7876

7977

@@ -89,7 +87,7 @@ nv.models.multiBar = function() {
8987
f.y1 = negBase;
9088
negBase = negBase - f.size;
9189
} else
92-
{
90+
{
9391
f.y1 = f.size + posBase;
9492
posBase = posBase + f.size;
9593
}
@@ -168,7 +166,7 @@ nv.models.multiBar = function() {
168166
groups.exit()
169167
.transition()
170168
.selectAll('rect.nv-bar')
171-
.delay(function(d,i) {
169+
.delay(function(d,i) {
172170
return i * delay/ data[0].values.length;
173171
})
174172
.attr('y', function(d) { return stacked ? y0(d.y0) : y0(0) })
@@ -266,7 +264,7 @@ nv.models.multiBar = function() {
266264

267265
if (stacked)
268266
bars.transition()
269-
.delay(function(d,i) {
267+
.delay(function(d,i) {
270268

271269
return i * delay / data[0].values.length;
272270
})
@@ -283,7 +281,7 @@ nv.models.multiBar = function() {
283281
.attr('width', x.rangeBand() / (stacked ? 1 : data.length) );
284282
else
285283
bars.transition()
286-
.delay(function(d,i) {
284+
.delay(function(d,i) {
287285
return i * delay/ data[0].values.length;
288286
})
289287
.attr('x', function(d,i) {
@@ -320,7 +318,7 @@ nv.models.multiBar = function() {
320318
chart.dispatch = dispatch;
321319

322320
chart.options = nv.utils.optionsFunc.bind(chart);
323-
321+
324322
chart.x = function(_) {
325323
if (!arguments.length) return getX;
326324
getX = _;

src/models/multiBarHorizontal.js

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -58,12 +58,10 @@ nv.models.multiBarHorizontal = function() {
5858

5959

6060
//add series index to each data point for reference
61-
data = data.map(function(series, i) {
62-
series.values = series.values.map(function(point) {
61+
data.forEach(function(series, i) {
62+
series.values.forEach(function(point) {
6363
point.series = i;
64-
return point;
6564
});
66-
return series;
6765
});
6866

6967

@@ -80,7 +78,7 @@ nv.models.multiBarHorizontal = function() {
8078
f.y1 = negBase - f.size;
8179
negBase = negBase - f.size;
8280
} else
83-
{
81+
{
8482
f.y1 = posBase;
8583
posBase = posBase + f.size;
8684
}
@@ -257,7 +255,7 @@ nv.models.multiBarHorizontal = function() {
257255
bars.transition()
258256
.attr('transform', function(d,i) {
259257
//TODO: stacked must be all positive or all negative, not both?
260-
return 'translate(' +
258+
return 'translate(' +
261259
(getY(d,i) < 0 ? y(getY(d,i)) : y(0))
262260
+ ',' +
263261
(d.series * x.rangeBand() / data.length
@@ -289,7 +287,7 @@ nv.models.multiBarHorizontal = function() {
289287
chart.dispatch = dispatch;
290288

291289
chart.options = nv.utils.optionsFunc.bind(chart);
292-
290+
293291
chart.x = function(_) {
294292
if (!arguments.length) return getX;
295293
getX = _;

src/models/multiBarTimeSeries.js

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -52,12 +52,10 @@ nv.models.multiBarTimeSeries = function() {
5252

5353

5454
//add series index to each data point for reference
55-
data = data.map(function(series, i) {
56-
series.values = series.values.map(function(point) {
55+
data.forEach(function(series, i) {
56+
series.values.forEach(function(point) {
5757
point.series = i;
58-
return point;
5958
});
60-
return series;
6159
});
6260

6361
//------------------------------------------------------------
@@ -156,10 +154,10 @@ nv.models.multiBarTimeSeries = function() {
156154
for(var ei=0; ei<seriesData.length; ei+=1) {
157155
maxElements = Math.max(seriesData[ei].length, maxElements);
158156
}
159-
157+
160158
var bandWidth = (availableWidth / maxElements)-0.1;
161159
var barWidth = bandWidth / data.length;
162-
160+
163161
var barsEnter = bars.enter().append('rect')
164162
.attr('class', function(d,i) { return getY(d,i) < 0 ? 'nv-bar negative' : 'nv-bar positive'})
165163
.attr('x', function(d,i,j) {

src/models/stackedArea.js

Lines changed: 17 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -59,15 +59,13 @@ nv.models.stackedArea = function() {
5959

6060

6161
// Injecting point index into each point because d3.layout.stack().out does not give index
62-
data = data.map(function(aseries, i) {
63-
aseries.seriesIndex = i;
64-
aseries.values = aseries.values.map(function(d, j) {
65-
d.index = j;
66-
d.seriesIndex = i;
67-
return d;
68-
})
69-
return aseries;
70-
});
62+
data.forEach(function(aseries, i) {
63+
aseries.seriesIndex = i;
64+
aseries.values = aseries.values.forEach(function(d, j) {
65+
d.index = j;
66+
d.seriesIndex = i;
67+
});
68+
});
7169

7270
var dataFiltered = data.filter(function(series) {
7371
return !series.disabled;
@@ -134,11 +132,11 @@ nv.models.stackedArea = function() {
134132

135133
var area = d3.svg.area()
136134
.x(function(d,i) { return x(getX(d,i)) })
137-
.y0(function(d) {
138-
return y(d.display.y0)
135+
.y0(function(d) {
136+
return y(d.display.y0)
139137
})
140-
.y1(function(d) {
141-
return y(d.display.y + d.display.y0)
138+
.y1(function(d) {
139+
return y(d.display.y + d.display.y0)
142140
})
143141
.interpolate(interpolate);
144142

@@ -186,13 +184,13 @@ nv.models.stackedArea = function() {
186184
.attr('d', function(d,i) { return zeroArea(d.values,i) })
187185
.remove();
188186
path
189-
.style('fill', function(d,i){
190-
return d.color || color(d, d.seriesIndex)
187+
.style('fill', function(d,i){
188+
return d.color || color(d, d.seriesIndex)
191189
})
192190
.style('stroke', function(d,i){ return d.color || color(d, d.seriesIndex) });
193191
path.transition()
194-
.attr('d', function(d,i) {
195-
return area(d.values,i)
192+
.attr('d', function(d,i) {
193+
return area(d.values,i)
196194
});
197195

198196

@@ -242,11 +240,11 @@ nv.models.stackedArea = function() {
242240
chart.dispatch = dispatch;
243241
chart.scatter = scatter;
244242

245-
d3.rebind(chart, scatter, 'interactive', 'size', 'xScale', 'yScale', 'zScale', 'xDomain', 'yDomain', 'xRange', 'yRange',
243+
d3.rebind(chart, scatter, 'interactive', 'size', 'xScale', 'yScale', 'zScale', 'xDomain', 'yDomain', 'xRange', 'yRange',
246244
'sizeDomain', 'forceX', 'forceY', 'forceSize', 'clipVoronoi', 'useVoronoi','clipRadius','highlightPoint','clearHighlights');
247245

248246
chart.options = nv.utils.optionsFunc.bind(chart);
249-
247+
250248
chart.x = function(_) {
251249
if (!arguments.length) return getX;
252250
getX = d3.functor(_);

src/models/stackedAreaChart.js

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -230,7 +230,7 @@ nv.models.stackedAreaChart = function() {
230230
.xScale(x);
231231
wrap.select(".nv-interactive").call(interactiveLayer);
232232
}
233-
233+
234234
stacked
235235
.width(availableWidth)
236236
.height(availableHeight)
@@ -254,7 +254,7 @@ nv.models.stackedAreaChart = function() {
254254

255255
g.select('.nv-x.nv-axis')
256256
.attr('transform', 'translate(0,' + availableHeight + ')');
257-
257+
258258
g.select('.nv-x.nv-axis')
259259
.transition().duration(0)
260260
.call(xAxis);
@@ -281,14 +281,12 @@ nv.models.stackedAreaChart = function() {
281281

282282
stacked.dispatch.on('areaClick.toggle', function(e) {
283283
if (data.filter(function(d) { return !d.disabled }).length === 1)
284-
data = data.map(function(d) {
284+
data.forEach(function(d) {
285285
d.disabled = false;
286-
return d
287286
});
288287
else
289-
data = data.map(function(d,i) {
288+
data.forEach(function(d,i) {
290289
d.disabled = (i != e.seriesIndex);
291-
return d
292290
});
293291

294292
state.disabled = data.map(function(d) { return !!d.disabled });
@@ -335,9 +333,9 @@ nv.models.stackedAreaChart = function() {
335333
stacked.clearHighlights();
336334
var singlePoint, pointIndex, pointXLocation, allData = [];
337335
data
338-
.filter(function(series, i) {
336+
.filter(function(series, i) {
339337
series.seriesIndex = i;
340-
return !series.disabled;
338+
return !series.disabled;
341339
})
342340
.forEach(function(series,i) {
343341
pointIndex = nv.interactiveBisect(series.values, e.pointXValue, chart.x());
@@ -452,7 +450,7 @@ nv.models.stackedAreaChart = function() {
452450
d3.rebind(chart, stacked, 'x', 'y', 'size', 'xScale', 'yScale', 'xDomain', 'yDomain', 'xRange', 'yRange', 'sizeDomain', 'interactive', 'useVoronoi', 'offset', 'order', 'style', 'clipEdge', 'forceX', 'forceY', 'forceSize', 'interpolate');
453451

454452
chart.options = nv.utils.optionsFunc.bind(chart);
455-
453+
456454
chart.margin = function(_) {
457455
if (!arguments.length) return margin;
458456
margin.top = typeof _.top != 'undefined' ? _.top : margin.top;

0 commit comments

Comments
 (0)