Skip to content

Commit

Permalink
Merge pull request #2146 from qparis/master
Browse files Browse the repository at this point in the history
[Issue 1919] wrong yDomain for stacked bars in MultiChart
  • Loading branch information
liquidpele committed Apr 6, 2018
2 parents 3023531 + 99285b6 commit 2c954c0
Showing 1 changed file with 20 additions and 2 deletions.
22 changes: 20 additions & 2 deletions src/models/multiChart.js
Original file line number Diff line number Diff line change
Expand Up @@ -233,6 +233,14 @@ nv.models.multiChart = function() {
extraValue2BarStacked.push({x:0, y:0});
}

function getStackedAreaYs(series) {
return d3.transpose(series).map(function(x) {
return x.map(function(g) {
return g.y;
});
}).map(function(x) {return d3.sum(x);})
}

yScale1 .domain(yDomain1 || d3.extent(d3.merge(series1).concat(extraValue1BarStacked), function(d) { return d.y } ))
.range([0, availableHeight]);

Expand All @@ -241,12 +249,22 @@ nv.models.multiChart = function() {

lines1.yDomain(yScale1.domain());
scatters1.yDomain(yScale1.domain());
bars1.yDomain(yScale1.domain());
if(bars1.stacked()) {
var yStackScale1 = yScale1.domain([0, d3.max(getStackedAreaYs(series1))]).range([0, availableHeight]);
bars1.yDomain(yStackScale1.domain())
} else {
bars1.yDomain(yScale1.domain());
}
stack1.yDomain(yScale1.domain());

lines2.yDomain(yScale2.domain());
scatters2.yDomain(yScale2.domain());
bars2.yDomain(yScale2.domain());
if(bars2.stacked()) {
var yStackScale2 = yScale2.domain([0, d3.max(getStackedAreaYs(series2))]).range([0, availableHeight]);
bars2.yDomain(yStackScale2.domain())
} else {
bars2.yDomain(yScale2.domain());
}
stack2.yDomain(yScale2.domain());

if(dataStack1.length){d3.transition(stack1Wrap).call(stack1);}
Expand Down

0 comments on commit 2c954c0

Please sign in to comment.