From d60f634ff00bc89d7a86f577233896d8f91918f2 Mon Sep 17 00:00:00 2001 From: Jukka Kurkela Date: Thu, 19 Dec 2019 21:58:23 +0200 Subject: [PATCH] Fix automatic `min` value of `stacked` scale. (#6851) --- src/core/core.datasetController.js | 4 + .../stacking/logarithmic-strings.js | 36 +++++ .../stacking/logarithmic-strings.png | Bin 0 -> 13028 bytes .../controller.bar/stacking/logarithmic.js | 36 +++++ .../controller.bar/stacking/logarithmic.png | Bin 0 -> 13028 bytes test/specs/controller.bar.tests.js | 130 ------------------ test/specs/scale.logarithmic.tests.js | 6 +- 7 files changed, 79 insertions(+), 133 deletions(-) create mode 100644 test/fixtures/controller.bar/stacking/logarithmic-strings.js create mode 100644 test/fixtures/controller.bar/stacking/logarithmic-strings.png create mode 100644 test/fixtures/controller.bar/stacking/logarithmic.js create mode 100644 test/fixtures/controller.bar/stacking/logarithmic.png diff --git a/src/core/core.datasetController.js b/src/core/core.datasetController.js index f8e39b482..7ce9c0d66 100644 --- a/src/core/core.datasetController.js +++ b/src/core/core.datasetController.js @@ -648,6 +648,10 @@ helpers.extend(DatasetController.prototype, { keys: indices, values: parsed._stacks[scale.id] }; + // Need to consider individual stack values for data range, + // in addition to the stacked value + min = Math.min(min, value); + max = Math.max(max, value); value = applyStack(stack, value, meta.index, true); } min = Math.min(min, value); diff --git a/test/fixtures/controller.bar/stacking/logarithmic-strings.js b/test/fixtures/controller.bar/stacking/logarithmic-strings.js new file mode 100644 index 000000000..e23a01c63 --- /dev/null +++ b/test/fixtures/controller.bar/stacking/logarithmic-strings.js @@ -0,0 +1,36 @@ +module.exports = { + config: { + type: 'bar', + data: { + datasets: [{ + data: ['10', '100', '10', '100'], + backgroundColor: '#ff0000' + }, { + data: ['100', '10', '0', '100'], + backgroundColor: '#00ff00' + }], + labels: ['label1', 'label2', 'label3', 'label4'] + }, + options: { + legend: false, + title: false, + datasets: { + bar: { + barPercentage: 1, + } + }, + scales: { + x: { + type: 'category', + display: false, + stacked: true, + }, + y: { + type: 'logarithmic', + display: false, + stacked: true + } + } + } + } +}; diff --git a/test/fixtures/controller.bar/stacking/logarithmic-strings.png b/test/fixtures/controller.bar/stacking/logarithmic-strings.png new file mode 100644 index 0000000000000000000000000000000000000000..2ce8d067c458a4be66699401fafcb1be23e5feb9 GIT binary patch literal 13028 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