|
|
|
@ -20,6 +20,7 @@ nv.models.line = function() {
|
|
|
|
|
, x //can be accessed via chart.xScale()
|
|
|
|
|
, y //can be accessed via chart.yScale()
|
|
|
|
|
, interpolate = "linear" // controls the line interpolation
|
|
|
|
|
, transitionDuration = 250 //override the transition duration
|
|
|
|
|
;
|
|
|
|
|
|
|
|
|
|
scatter
|
|
|
|
@ -84,7 +85,7 @@ nv.models.line = function() {
|
|
|
|
|
var scatterWrap = wrap.select('.nv-scatterWrap');
|
|
|
|
|
//.datum(data); // Data automatically trickles down from the wrap
|
|
|
|
|
|
|
|
|
|
d3.transition(scatterWrap).call(scatter);
|
|
|
|
|
scatterWrap.transition().call(scatter);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -108,7 +109,8 @@ nv.models.line = function() {
|
|
|
|
|
groups.enter().append('g')
|
|
|
|
|
.style('stroke-opacity', 1e-6)
|
|
|
|
|
.style('fill-opacity', 1e-6);
|
|
|
|
|
d3.transition(groups.exit())
|
|
|
|
|
groups.exit()
|
|
|
|
|
.transition().duration(transitionDuration)
|
|
|
|
|
.style('stroke-opacity', 1e-6)
|
|
|
|
|
.style('fill-opacity', 1e-6)
|
|
|
|
|
.remove();
|
|
|
|
@ -117,7 +119,8 @@ nv.models.line = function() {
|
|
|
|
|
.classed('hover', function(d) { return d.hover })
|
|
|
|
|
.style('fill', function(d,i){ return color(d, i) })
|
|
|
|
|
.style('stroke', function(d,i){ return color(d, i)});
|
|
|
|
|
d3.transition(groups)
|
|
|
|
|
groups
|
|
|
|
|
.transition().duration(transitionDuration)
|
|
|
|
|
.style('stroke-opacity', 1)
|
|
|
|
|
.style('fill-opacity', .5);
|
|
|
|
|
|
|
|
|
@ -137,7 +140,8 @@ nv.models.line = function() {
|
|
|
|
|
//.y1(function(d,i) { return y0(0) }) //assuming 0 is within y domain.. may need to tweak this
|
|
|
|
|
.apply(this, [d.values])
|
|
|
|
|
});
|
|
|
|
|
d3.transition(groups.exit().selectAll('path.nv-area'))
|
|
|
|
|
groups.exit().selectAll('path.nv-area')
|
|
|
|
|
.transition().duration(transitionDuration)
|
|
|
|
|
.attr('d', function(d) {
|
|
|
|
|
return d3.svg.area()
|
|
|
|
|
.interpolate(interpolate)
|
|
|
|
@ -148,7 +152,8 @@ nv.models.line = function() {
|
|
|
|
|
//.y1(function(d,i) { return y0(0) }) //assuming 0 is within y domain.. may need to tweak this
|
|
|
|
|
.apply(this, [d.values])
|
|
|
|
|
});
|
|
|
|
|
d3.transition(areaPaths)
|
|
|
|
|
areaPaths
|
|
|
|
|
.transition().duration(transitionDuration)
|
|
|
|
|
.attr('d', function(d) {
|
|
|
|
|
return d3.svg.area()
|
|
|
|
|
.interpolate(interpolate)
|
|
|
|
@ -173,7 +178,8 @@ nv.models.line = function() {
|
|
|
|
|
.x(function(d,i) { return nv.utils.NaNtoZero(x0(getX(d,i))) })
|
|
|
|
|
.y(function(d,i) { return nv.utils.NaNtoZero(y0(getY(d,i))) })
|
|
|
|
|
);
|
|
|
|
|
d3.transition(groups.exit().selectAll('path.nv-line'))
|
|
|
|
|
groups.exit().selectAll('path.nv-line')
|
|
|
|
|
.transition().duration(transitionDuration)
|
|
|
|
|
.attr('d',
|
|
|
|
|
d3.svg.line()
|
|
|
|
|
.interpolate(interpolate)
|
|
|
|
@ -181,7 +187,8 @@ nv.models.line = function() {
|
|
|
|
|
.x(function(d,i) { return nv.utils.NaNtoZero(x(getX(d,i))) })
|
|
|
|
|
.y(function(d,i) { return nv.utils.NaNtoZero(y(getY(d,i))) })
|
|
|
|
|
);
|
|
|
|
|
d3.transition(linePaths)
|
|
|
|
|
linePaths
|
|
|
|
|
.transition().duration(transitionDuration)
|
|
|
|
|
.attr('d',
|
|
|
|
|
d3.svg.line()
|
|
|
|
|
.interpolate(interpolate)
|
|
|
|
@ -278,6 +285,12 @@ nv.models.line = function() {
|
|
|
|
|
return chart;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
chart.transitionDuration = function(_) {
|
|
|
|
|
if (!arguments.length) return transitionDuration;
|
|
|
|
|
transitionDuration = _;
|
|
|
|
|
return chart;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
//============================================================
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|