diff --git a/src/controllers/controller.line.js b/src/controllers/controller.line.js index bf525ea9287..1baeeb3cb09 100644 --- a/src/controllers/controller.line.js +++ b/src/controllers/controller.line.js @@ -183,9 +183,10 @@ module.exports = DatasetController.extend({ var yScale = me._yScale; var sumPos = 0; var sumNeg = 0; + var rightValue = Number(yScale.getRightValue(value)); var metasets = chart._getSortedVisibleDatasetMetas(); var ilen = metasets.length; - var i, ds, dsMeta; + var i, ds, dsMeta, stackedRightValue; if (yScale.options.stacked) { for (i = 0; i < ilen; ++i) { @@ -196,7 +197,7 @@ module.exports = DatasetController.extend({ ds = chart.data.datasets[dsMeta.index]; if (dsMeta.type === 'line' && dsMeta.yAxisID === yScale.id) { - var stackedRightValue = Number(yScale.getRightValue(ds.data[index])); + stackedRightValue = +yScale.getRightValue(ds.data[index]); if (stackedRightValue < 0) { sumNeg += stackedRightValue || 0; } else { @@ -205,14 +206,11 @@ module.exports = DatasetController.extend({ } } - var rightValue = Number(yScale.getRightValue(value)); if (rightValue < 0) { return yScale.getPixelForValue(sumNeg + rightValue); } - return yScale.getPixelForValue(sumPos + rightValue); } - - return yScale.getPixelForValue(value); + return yScale.getPixelForValue(sumPos + rightValue); }, updateBezierControlPoints: function() { diff --git a/src/scales/scale.linear.js b/src/scales/scale.linear.js index c7f979bba5f..24e791961e7 100644 --- a/src/scales/scale.linear.js +++ b/src/scales/scale.linear.js @@ -50,7 +50,7 @@ function stackData(scale, stacks, meta, data) { var ilen = data.length; var i, value; - for (i = ilen - 1; i >= 0; --i) { + for (i = 0; i < ilen; ++i) { value = +scale.getRightValue(data[i]); if (isNaN(value) || meta.data[i].hidden) { continue;