diff --git a/src/controllers/controller.bar.js b/src/controllers/controller.bar.js index 60470f593ef..0eabca186cf 100644 --- a/src/controllers/controller.bar.js +++ b/src/controllers/controller.bar.js @@ -328,7 +328,7 @@ module.exports = DatasetController.extend({ } if (imeta.stack === stack) { - stackLength = scale._parseValue(datasets[i].data[index]); + stackLength = scale._parseValue(datasets[imeta.index].data[index]); ivalue = stackLength.start === undefined ? stackLength.end : stackLength.min >= 0 && stackLength.max >= 0 ? stackLength.max : stackLength.min; if ((value.min < 0 && ivalue < 0) || (value.max >= 0 && ivalue > 0)) { diff --git a/src/scales/scale.linear.js b/src/scales/scale.linear.js index 63aad3a6f05..535b185d271 100644 --- a/src/scales/scale.linear.js +++ b/src/scales/scale.linear.js @@ -23,11 +23,11 @@ function getMatchingVisibleMetas(scale) { }); } -function getStack(stacks, stacked, meta) { +function getOrCreateStack(stacks, stacked, meta) { var key = [ meta.type, // we have a separate stack for stack=undefined datasets when the opts.stacked is undefined - ((stacked === undefined && meta.stack === undefined) ? meta.index : ''), + stacked === undefined && meta.stack === undefined ? meta.index : '', meta.stack ].join('.'); @@ -44,14 +44,14 @@ function getStack(stacks, stacked, meta) { function stackData(scale, stacks, meta, data) { var opts = scale.options; var stacked = opts.stacked; - var stack = getStack(stacks, stacked, meta); + var stack = getOrCreateStack(stacks, stacked, meta); var pos = stack.pos; var neg = stack.neg; var ilen = data.length; var i, value; for (i = 0; i < ilen; ++i) { - value = this._parseValue(data[i]); + value = scale._parseValue(data[i]); if (isNaN(value.min) || isNaN(value.max) || meta.data[i].hidden) { continue; } @@ -74,7 +74,7 @@ function updateMinMax(scale, meta, data) { var i, value; for (i = 0; i < ilen; ++i) { - value = this._parseValue(data[i]); + value = scale._parseValue(data[i]); if (isNaN(value.min) || isNaN(value.max) || meta.data[i].hidden) { continue;