Merge branch 'fix-dereferencing' of https://github.com/Marsup/nvd3 into master-263

master
Robin Hu 11 years ago
commit 194c4fc0a1

@ -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 = _;

@ -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 = _;

@ -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 = _;

@ -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<seriesData.length; ei+=1) {
maxElements = Math.max(seriesData[ei].length, maxElements);
}
var bandWidth = (availableWidth / maxElements)-0.1;
var barWidth = bandWidth / data.length;
var barsEnter = bars.enter().append('rect')
.attr('class', function(d,i) { return getY(d,i) < 0 ? 'nv-bar negative' : 'nv-bar positive'})
.attr('x', function(d,i,j) {

@ -59,15 +59,13 @@ nv.models.stackedArea = function() {
var dataRaw = data;
// Injecting point index into each point because d3.layout.stack().out does not give index
data = data.map(function(aseries, i) {
aseries.seriesIndex = i;
aseries.values = aseries.values.map(function(d, j) {
d.index = j;
d.seriesIndex = i;
return d;
})
return aseries;
});
data.forEach(function(aseries, i) {
aseries.seriesIndex = i;
aseries.values = aseries.values.forEach(function(d, j) {
d.index = j;
d.seriesIndex = i;
});
});
var dataFiltered = data.filter(function(series) {
return !series.disabled;
@ -134,11 +132,11 @@ nv.models.stackedArea = function() {
var area = d3.svg.area()
.x(function(d,i) { return x(getX(d,i)) })
.y0(function(d) {
return y(d.display.y0)
.y0(function(d) {
return y(d.display.y0)
})
.y1(function(d) {
return y(d.display.y + d.display.y0)
.y1(function(d) {
return y(d.display.y + d.display.y0)
})
.interpolate(interpolate);
@ -186,13 +184,13 @@ nv.models.stackedArea = function() {
.attr('d', function(d,i) { return zeroArea(d.values,i) })
.remove();
path
.style('fill', function(d,i){
return d.color || color(d, d.seriesIndex)
.style('fill', function(d,i){
return d.color || color(d, d.seriesIndex)
})
.style('stroke', function(d,i){ return d.color || color(d, d.seriesIndex) });
path.transition()
.attr('d', function(d,i) {
return area(d.values,i)
.attr('d', function(d,i) {
return area(d.values,i)
});
@ -264,11 +262,11 @@ nv.models.stackedArea = function() {
chart.dispatch = dispatch;
chart.scatter = scatter;
d3.rebind(chart, scatter, 'interactive', 'size', 'xScale', 'yScale', 'zScale', 'xDomain', 'yDomain', 'xRange', 'yRange',
d3.rebind(chart, scatter, 'interactive', 'size', 'xScale', 'yScale', 'zScale', 'xDomain', 'yDomain', 'xRange', 'yRange',
'sizeDomain', 'forceX', 'forceY', 'forceSize', 'clipVoronoi', 'useVoronoi','clipRadius','highlightPoint','clearHighlights');
chart.options = nv.utils.optionsFunc.bind(chart);
chart.x = function(_) {
if (!arguments.length) return getX;
getX = d3.functor(_);

@ -252,7 +252,7 @@ nv.models.stackedAreaChart = function() {
.xScale(x);
wrap.select(".nv-interactive").call(interactiveLayer);
}
stacked
.width(availableWidth)
.height(availableHeight)
@ -276,7 +276,7 @@ nv.models.stackedAreaChart = function() {
g.select('.nv-x.nv-axis')
.attr('transform', 'translate(0,' + availableHeight + ')');
g.select('.nv-x.nv-axis')
.transition().duration(0)
.call(xAxis);
@ -304,14 +304,12 @@ nv.models.stackedAreaChart = function() {
stacked.dispatch.on('areaClick.toggle', function(e) {
if (data.filter(function(d) { return !d.disabled }).length === 1)
data = data.map(function(d) {
data.forEach(function(d) {
d.disabled = false;
return d
});
else
data = data.map(function(d,i) {
data.forEach(function(d,i) {
d.disabled = (i != e.seriesIndex);
return d
});
state.disabled = data.map(function(d) { return !!d.disabled });
@ -349,9 +347,9 @@ nv.models.stackedAreaChart = function() {
stacked.clearHighlights();
var singlePoint, pointIndex, pointXLocation, allData = [];
data
.filter(function(series, i) {
.filter(function(series, i) {
series.seriesIndex = i;
return !series.disabled;
return !series.disabled;
})
.forEach(function(series,i) {
pointIndex = nv.interactiveBisect(series.values, e.pointXValue, chart.x());
@ -490,7 +488,7 @@ nv.models.stackedAreaChart = function() {
d3.rebind(chart, stacked, 'x', 'y', 'size', 'xScale', 'yScale', 'xDomain', 'yDomain', 'xRange', 'yRange', 'sizeDomain', 'interactive', 'useVoronoi', 'offset', 'order', 'style', 'clipEdge', 'forceX', 'forceY', 'forceSize', 'interpolate');
chart.options = nv.utils.optionsFunc.bind(chart);
chart.margin = function(_) {
if (!arguments.length) return margin;
margin.top = typeof _.top != 'undefined' ? _.top : margin.top;

Loading…
Cancel
Save