|
|
@ -38,6 +38,7 @@ nv.models.scatter = function() {
|
|
|
|
, singlePoint = false
|
|
|
|
, singlePoint = false
|
|
|
|
, dispatch = d3.dispatch('elementClick', 'elementMouseover', 'elementMouseout')
|
|
|
|
, dispatch = d3.dispatch('elementClick', 'elementMouseover', 'elementMouseout')
|
|
|
|
, useVoronoi = true
|
|
|
|
, useVoronoi = true
|
|
|
|
|
|
|
|
, transitionDuration = 250
|
|
|
|
;
|
|
|
|
;
|
|
|
|
|
|
|
|
|
|
|
|
//============================================================
|
|
|
|
//============================================================
|
|
|
@ -341,14 +342,16 @@ nv.models.scatter = function() {
|
|
|
|
groups.enter().append('g')
|
|
|
|
groups.enter().append('g')
|
|
|
|
.style('stroke-opacity', 1e-6)
|
|
|
|
.style('stroke-opacity', 1e-6)
|
|
|
|
.style('fill-opacity', 1e-6);
|
|
|
|
.style('fill-opacity', 1e-6);
|
|
|
|
d3.transition(groups.exit())
|
|
|
|
groups.exit()
|
|
|
|
|
|
|
|
.transition().duration(transitionDuration)
|
|
|
|
.style('stroke-opacity', 1e-6)
|
|
|
|
.style('stroke-opacity', 1e-6)
|
|
|
|
.style('fill-opacity', 1e-6)
|
|
|
|
.style('fill-opacity', 1e-6)
|
|
|
|
.remove();
|
|
|
|
.remove();
|
|
|
|
groups
|
|
|
|
groups
|
|
|
|
.attr('class', function(d,i) { return 'nv-group nv-series-' + i })
|
|
|
|
.attr('class', function(d,i) { return 'nv-group nv-series-' + i })
|
|
|
|
.classed('hover', function(d) { return d.hover });
|
|
|
|
.classed('hover', function(d) { return d.hover });
|
|
|
|
d3.transition(groups)
|
|
|
|
groups
|
|
|
|
|
|
|
|
.transition().duration(transitionDuration)
|
|
|
|
.style('fill', function(d,i) { return color(d, i) })
|
|
|
|
.style('fill', function(d,i) { return color(d, i) })
|
|
|
|
.style('stroke', function(d,i) { return color(d, i) })
|
|
|
|
.style('stroke', function(d,i) { return color(d, i) })
|
|
|
|
.style('stroke-opacity', 1)
|
|
|
|
.style('stroke-opacity', 1)
|
|
|
@ -367,6 +370,7 @@ nv.models.scatter = function() {
|
|
|
|
.attr('r', function(d,i) { return Math.sqrt(z(getSize(d,i))/Math.PI) });
|
|
|
|
.attr('r', function(d,i) { return Math.sqrt(z(getSize(d,i))/Math.PI) });
|
|
|
|
points.exit().remove();
|
|
|
|
points.exit().remove();
|
|
|
|
groups.exit().selectAll('path.nv-point').transition()
|
|
|
|
groups.exit().selectAll('path.nv-point').transition()
|
|
|
|
|
|
|
|
.duration(transitionDuration)
|
|
|
|
.attr('cx', function(d,i) { return nv.utils.NaNtoZero(x(getX(d,i))) })
|
|
|
|
.attr('cx', function(d,i) { return nv.utils.NaNtoZero(x(getX(d,i))) })
|
|
|
|
.attr('cy', function(d,i) { return nv.utils.NaNtoZero(y(getY(d,i))) })
|
|
|
|
.attr('cy', function(d,i) { return nv.utils.NaNtoZero(y(getY(d,i))) })
|
|
|
|
.remove();
|
|
|
|
.remove();
|
|
|
@ -378,6 +382,7 @@ nv.models.scatter = function() {
|
|
|
|
;
|
|
|
|
;
|
|
|
|
});
|
|
|
|
});
|
|
|
|
points.transition()
|
|
|
|
points.transition()
|
|
|
|
|
|
|
|
.duration(transitionDuration)
|
|
|
|
.attr('cx', function(d,i) { return nv.utils.NaNtoZero(x(getX(d,i))) })
|
|
|
|
.attr('cx', function(d,i) { return nv.utils.NaNtoZero(x(getX(d,i))) })
|
|
|
|
.attr('cy', function(d,i) { return nv.utils.NaNtoZero(y(getY(d,i))) })
|
|
|
|
.attr('cy', function(d,i) { return nv.utils.NaNtoZero(y(getY(d,i))) })
|
|
|
|
.attr('r', function(d,i) { return Math.sqrt(z(getSize(d,i))/Math.PI) });
|
|
|
|
.attr('r', function(d,i) { return Math.sqrt(z(getSize(d,i))/Math.PI) });
|
|
|
@ -398,7 +403,8 @@ nv.models.scatter = function() {
|
|
|
|
.size(function(d,i) { return z(getSize(d,i)) })
|
|
|
|
.size(function(d,i) { return z(getSize(d,i)) })
|
|
|
|
);
|
|
|
|
);
|
|
|
|
points.exit().remove();
|
|
|
|
points.exit().remove();
|
|
|
|
d3.transition(groups.exit().selectAll('path.nv-point'))
|
|
|
|
groups.exit().selectAll('path.nv-point')
|
|
|
|
|
|
|
|
.transition().duration(transitionDuration)
|
|
|
|
.attr('transform', function(d,i) {
|
|
|
|
.attr('transform', function(d,i) {
|
|
|
|
return 'translate(' + x(getX(d,i)) + ',' + y(getY(d,i)) + ')'
|
|
|
|
return 'translate(' + x(getX(d,i)) + ',' + y(getY(d,i)) + ')'
|
|
|
|
})
|
|
|
|
})
|
|
|
@ -411,6 +417,7 @@ nv.models.scatter = function() {
|
|
|
|
;
|
|
|
|
;
|
|
|
|
});
|
|
|
|
});
|
|
|
|
points.transition()
|
|
|
|
points.transition()
|
|
|
|
|
|
|
|
.duration(transitionDuration)
|
|
|
|
.attr('transform', function(d,i) {
|
|
|
|
.attr('transform', function(d,i) {
|
|
|
|
//nv.log(d,i,getX(d,i), x(getX(d,i)));
|
|
|
|
//nv.log(d,i,getX(d,i), x(getX(d,i)));
|
|
|
|
return 'translate(' + x(getX(d,i)) + ',' + y(getY(d,i)) + ')'
|
|
|
|
return 'translate(' + x(getX(d,i)) + ',' + y(getY(d,i)) + ')'
|
|
|
@ -668,6 +675,12 @@ nv.models.scatter = function() {
|
|
|
|
return chart;
|
|
|
|
return chart;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
chart.transitionDuration = function(_) {
|
|
|
|
|
|
|
|
if (!arguments.length) return transitionDuration;
|
|
|
|
|
|
|
|
transitionDuration = _;
|
|
|
|
|
|
|
|
return chart;
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
//============================================================
|
|
|
|
//============================================================
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|