diff --git a/src/scales/scale.linearbase.js b/src/scales/scale.linearbase.js index ab2c4b91e5c..8bd3c7e1fef 100644 --- a/src/scales/scale.linearbase.js +++ b/src/scales/scale.linearbase.js @@ -29,7 +29,7 @@ function generateTicks(generationOptions, dataRange) { // for details. const MIN_SPACING = 1e-14; - const {step, min, max, precision, count, maxTicks, maxDigits, includeBounds} = generationOptions; + const {bounds, step, min, max, precision, count, maxTicks, maxDigits, includeBounds} = generationOptions; const unit = step || 1; const maxSpaces = maxTicks - 1; const {min: rmin, max: rmax} = dataRange; @@ -58,8 +58,13 @@ function generateTicks(generationOptions, dataRange) { spacing = Math.ceil(spacing * factor) / factor; } - niceMin = Math.floor(rmin / spacing) * spacing; - niceMax = Math.ceil(rmax / spacing) * spacing; + if (bounds === 'ticks') { + niceMin = Math.floor(rmin / spacing) * spacing; + niceMax = Math.ceil(rmax / spacing) * spacing; + } else { + niceMin = rmin; + niceMax = rmax; + } if (minDefined && maxDefined && step && almostWhole((max - min) / step, spacing / 1000)) { // Case 1: If min, max and stepSize are set and they make an evenly spaced scale use it. @@ -241,6 +246,7 @@ export default class LinearScaleBase extends Scale { const numericGeneratorOptions = { maxTicks, + bounds: opts.bounds, min: opts.min, max: opts.max, precision: tickOpts.precision, diff --git a/test/fixtures/controller.line/stacking/bounds-data.js b/test/fixtures/controller.line/stacking/bounds-data.js new file mode 100644 index 00000000000..413af181f5a --- /dev/null +++ b/test/fixtures/controller.line/stacking/bounds-data.js @@ -0,0 +1,29 @@ +module.exports = { + config: { + type: 'line', + data: { + labels: ['a', 'b'], + datasets: [{ + borderColor: 'red', + data: [50, 75], + }, { + borderColor: 'blue', + data: [25, 50], + }] + }, + options: { + scales: { + x: { + display: false + }, + y: { + stacked: true, + bounds: 'data' + } + } + } + }, + options: { + spriteText: true + } +}; diff --git a/test/fixtures/controller.line/stacking/bounds-data.png b/test/fixtures/controller.line/stacking/bounds-data.png new file mode 100644 index 00000000000..90ce6a30c28 Binary files /dev/null and b/test/fixtures/controller.line/stacking/bounds-data.png differ