Fixed x and y point distribution on scatterWithLegend.js

master-patched
Bob Monteverde 12 years ago
parent e528a47c1a
commit 9ff72baad4

@ -1446,20 +1446,6 @@ nv.models.line = function() {
d3.rebind(chart, scatter, 'size');
chart.x = function(_) {
if (!arguments.length) return getX;
getX = _;
scatter.x(_);
return chart;
};
chart.y = function(_) {
if (!arguments.length) return getY;
getY = _;
scatter.y(_);
return chart;
};
chart.margin = function(_) {
if (!arguments.length) return margin;
margin = _;
@ -1478,6 +1464,20 @@ nv.models.line = function() {
return chart;
};
chart.x = function(_) {
if (!arguments.length) return getX;
getX = _;
scatter.x(_);
return chart;
};
chart.y = function(_) {
if (!arguments.length) return getY;
getY = _;
scatter.y(_);
return chart;
};
chart.xDomain = function(_) {
if (!arguments.length) return xDomain;
xDomain = _;
@ -1591,8 +1591,6 @@ nv.models.linePlusBar = function() {
lines
.width(availableWidth)
.height(availableHeight)
//.x(getX)
//.y(getY)
.color(data.map(function(d,i) {
return d.color || color[i % 10];
}).filter(function(d,i) { return !data[i].disabled && !data[i].bar }))
@ -2963,7 +2961,8 @@ nv.models.scatterWithLegend = function() {
yAxis = nv.models.axis().scale(y).orient('left').tickPadding(10),
legend = nv.models.legend().height(30),
scatter = nv.models.scatter(),
dispatch = d3.dispatch('tooltipShow', 'tooltipHide');
dispatch = d3.dispatch('tooltipShow', 'tooltipHide'),
x0, y0;
function chart(selection) {
@ -2977,6 +2976,9 @@ nv.models.scatterWithLegend = function() {
availableWidth = width() - margin.left - margin.right,
availableHeight = height() - margin.top - margin.bottom;
x0 = x0 || x;
y0 = y0 || y;
x .domain(d3.extent(d3.merge(seriesData).map(function(d) { return d.x }).concat(scatter.forceX) ))
.range([0, availableWidth]);
@ -3030,7 +3032,7 @@ nv.models.scatterWithLegend = function() {
//TODO: FIX the dist line rotate on enable/disable series
if ( showDistX || showDistY) {
var distWrap = scatterWrap.selectAll('g.distribution')
.data(function(d) { return d })
.data(function(d) { return d }, function(d) { return d.key });
distWrap.enter().append('g').attr('class', function(d,i) { return 'distribution series-' + i })
@ -3041,8 +3043,8 @@ nv.models.scatterWithLegend = function() {
var distX = distWrap.selectAll('line.distX')
.data(function(d) { return d.values })
distX.enter().append('line')
//.attr('x1', function(d,i) { return x0(scatter.x()(d,i)) })
//.attr('x2', function(d,i) { return x0(scatter.x()(d,i)) })
.attr('x1', function(d,i) { return x0(scatter.x()(d,i)) })
.attr('x2', function(d,i) { return x0(scatter.x()(d,i)) })
//d3.transition(distX.exit())
d3.transition(distWrap.exit().selectAll('line.distX'))
.attr('x1', function(d,i) { return x(scatter.x()(d,i)) })
@ -3062,8 +3064,8 @@ nv.models.scatterWithLegend = function() {
var distY = distWrap.selectAll('line.distY')
.data(function(d) { return d.values })
distY.enter().append('line')
//.attr('y1', function(d,i) { return y0(scatter.y()(d,i)) })
//.attr('y2', function(d,i) { return y0(scatter.y()(d,i)) });
.attr('y1', function(d,i) { return y0(scatter.y()(d,i)) })
.attr('y2', function(d,i) { return y0(scatter.y()(d,i)) });
//d3.transition(distY.exit())
d3.transition(distWrap.exit().selectAll('line.distY'))
.attr('y1', function(d,i) { return y(scatter.y()(d,i)) })
@ -3074,8 +3076,7 @@ nv.models.scatterWithLegend = function() {
.attr('x1', x.range()[0])
.attr('x2', x.range()[0] - 8)
d3.transition(distY)
.attr('y1', function(d,i) { return y(scatter.y()(d,i)) })
.attr('y2', function(d,i) { return y(scatter.y()(d,i)) });
.attr('y1', function(d,i) { return y(scatter.y()(d,i)) }) .attr('y2', function(d,i) { return y(scatter.y()(d,i)) });
}
@ -3159,6 +3160,11 @@ nv.models.scatterWithLegend = function() {
.attr('x1', x.range()[0]);
});
//store old scales for use in transitions on update, to animate from old to new positions, and sizes
x0 = x.copy();
y0 = y.copy();
});
return chart;

4
nv.d3.min.js vendored

File diff suppressed because one or more lines are too long

@ -140,20 +140,6 @@ nv.models.line = function() {
d3.rebind(chart, scatter, 'size');
chart.x = function(_) {
if (!arguments.length) return getX;
getX = _;
scatter.x(_);
return chart;
};
chart.y = function(_) {
if (!arguments.length) return getY;
getY = _;
scatter.y(_);
return chart;
};
chart.margin = function(_) {
if (!arguments.length) return margin;
margin = _;
@ -172,6 +158,20 @@ nv.models.line = function() {
return chart;
};
chart.x = function(_) {
if (!arguments.length) return getX;
getX = _;
scatter.x(_);
return chart;
};
chart.y = function(_) {
if (!arguments.length) return getY;
getY = _;
scatter.y(_);
return chart;
};
chart.xDomain = function(_) {
if (!arguments.length) return xDomain;
xDomain = _;

@ -53,8 +53,6 @@ nv.models.linePlusBar = function() {
lines
.width(availableWidth)
.height(availableHeight)
//.x(getX)
//.y(getY)
.color(data.map(function(d,i) {
return d.color || color[i % 10];
}).filter(function(d,i) { return !data[i].disabled && !data[i].bar }))

@ -19,7 +19,8 @@ nv.models.scatterWithLegend = function() {
yAxis = nv.models.axis().scale(y).orient('left').tickPadding(10),
legend = nv.models.legend().height(30),
scatter = nv.models.scatter(),
dispatch = d3.dispatch('tooltipShow', 'tooltipHide');
dispatch = d3.dispatch('tooltipShow', 'tooltipHide'),
x0, y0;
function chart(selection) {
@ -33,6 +34,9 @@ nv.models.scatterWithLegend = function() {
availableWidth = width() - margin.left - margin.right,
availableHeight = height() - margin.top - margin.bottom;
x0 = x0 || x;
y0 = y0 || y;
x .domain(d3.extent(d3.merge(seriesData).map(function(d) { return d.x }).concat(scatter.forceX) ))
.range([0, availableWidth]);
@ -83,10 +87,9 @@ nv.models.scatterWithLegend = function() {
d3.transition(scatterWrap).call(scatter);
//TODO: FIX the dist line rotate on enable/disable series
if ( showDistX || showDistY) {
var distWrap = scatterWrap.selectAll('g.distribution')
.data(function(d) { return d })
.data(function(d) { return d }, function(d) { return d.key });
distWrap.enter().append('g').attr('class', function(d,i) { return 'distribution series-' + i })
@ -97,8 +100,8 @@ nv.models.scatterWithLegend = function() {
var distX = distWrap.selectAll('line.distX')
.data(function(d) { return d.values })
distX.enter().append('line')
//.attr('x1', function(d,i) { return x0(scatter.x()(d,i)) })
//.attr('x2', function(d,i) { return x0(scatter.x()(d,i)) })
.attr('x1', function(d,i) { return x0(scatter.x()(d,i)) })
.attr('x2', function(d,i) { return x0(scatter.x()(d,i)) })
//d3.transition(distX.exit())
d3.transition(distWrap.exit().selectAll('line.distX'))
.attr('x1', function(d,i) { return x(scatter.x()(d,i)) })
@ -118,8 +121,8 @@ nv.models.scatterWithLegend = function() {
var distY = distWrap.selectAll('line.distY')
.data(function(d) { return d.values })
distY.enter().append('line')
//.attr('y1', function(d,i) { return y0(scatter.y()(d,i)) })
//.attr('y2', function(d,i) { return y0(scatter.y()(d,i)) });
.attr('y1', function(d,i) { return y0(scatter.y()(d,i)) })
.attr('y2', function(d,i) { return y0(scatter.y()(d,i)) });
//d3.transition(distY.exit())
d3.transition(distWrap.exit().selectAll('line.distY'))
.attr('y1', function(d,i) { return y(scatter.y()(d,i)) })
@ -130,8 +133,7 @@ nv.models.scatterWithLegend = function() {
.attr('x1', x.range()[0])
.attr('x2', x.range()[0] - 8)
d3.transition(distY)
.attr('y1', function(d,i) { return y(scatter.y()(d,i)) })
.attr('y2', function(d,i) { return y(scatter.y()(d,i)) });
.attr('y1', function(d,i) { return y(scatter.y()(d,i)) }) .attr('y2', function(d,i) { return y(scatter.y()(d,i)) });
}
@ -215,6 +217,11 @@ nv.models.scatterWithLegend = function() {
.attr('x1', x.range()[0]);
});
//store old scales for use in transitions on update, to animate from old to new positions, and sizes
x0 = x.copy();
y0 = y.copy();
});
return chart;

Loading…
Cancel
Save