From e4142d8d7b668c27eaa1c61f7bb52b59fba7420f Mon Sep 17 00:00:00 2001 From: Jukka Kurkela Date: Sat, 3 Apr 2021 15:01:48 +0300 Subject: [PATCH] Logarithmic: handle null/NaN values (#8793) --- src/scales/scale.logarithmic.js | 3 ++ .../fixtures/scale.logarithmic/null-values.js | 49 ++++++++++++++++++ .../scale.logarithmic/null-values.png | Bin 0 -> 31810 bytes test/specs/scale.logarithmic.tests.js | 2 + 4 files changed, 54 insertions(+) create mode 100644 test/fixtures/scale.logarithmic/null-values.js create mode 100644 test/fixtures/scale.logarithmic/null-values.png diff --git a/src/scales/scale.logarithmic.js b/src/scales/scale.logarithmic.js index 2223f1cff..99e832414 100644 --- a/src/scales/scale.logarithmic.js +++ b/src/scales/scale.logarithmic.js @@ -170,6 +170,9 @@ export default class LogarithmicScale extends Scale { if (value === undefined || value === 0) { value = me.min; } + if (value === null || isNaN(value)) { + return NaN; + } return me.getPixelForDecimal(value === me.min ? 0 : (log10(value) - me._startValue) / me._valueRange); diff --git a/test/fixtures/scale.logarithmic/null-values.js b/test/fixtures/scale.logarithmic/null-values.js new file mode 100644 index 000000000..a9450f0d6 --- /dev/null +++ b/test/fixtures/scale.logarithmic/null-values.js @@ -0,0 +1,49 @@ +module.exports = { + config: { + type: 'line', + data: { + labels: ['January', 'February', 'March', 'April', 'May', 'June', 'July'], + datasets: [{ + backgroundColor: 'red', + borderColor: 'red', + fill: false, + data: [ + 150, + null, + 1500, + 200, + 9000, + 3000, + 8888 + ], + spanGaps: true + }, { + backgroundColor: 'blue', + borderColor: 'blue', + fill: false, + data: [ + 1000, + 5500, + 800, + 7777, + null, + 6666, + 5555 + ], + spanGaps: false + }] + }, + options: { + responsive: true, + scales: { + x: { + display: false, + }, + y: { + display: false, + type: 'logarithmic', + } + } + } + } +}; diff --git a/test/fixtures/scale.logarithmic/null-values.png b/test/fixtures/scale.logarithmic/null-values.png new file mode 100644 index 0000000000000000000000000000000000000000..d75929610c1f024b1c91c640f5d0463bc84a3cb6 GIT binary patch literal 31810 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⪼6tA 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 P{AX-vVNj!ox$(aMt8J7w literal 0 Hc-jL100001 diff --git a/test/specs/scale.logarithmic.tests.js b/test/specs/scale.logarithmic.tests.js index 221152b66..b68ef305e 100644 --- a/test/specs/scale.logarithmic.tests.js +++ b/test/specs/scale.logarithmic.tests.js @@ -3,6 +3,8 @@ function getLabels(scale) { } describe('Logarithmic Scale tests', function() { + describe('auto', jasmine.fixture.specs('scale.logarithmic')); + it('should register', function() { var Constructor = Chart.registry.getScale('logarithmic'); expect(Constructor).not.toBe(undefined); -- 2.47.3