]> git.ipfire.org Git - thirdparty/Chart.js.git/commitdiff
Stacked scatter chart (#7468)
authorEvert Timberg <evert.timberg+github@gmail.com>
Sun, 7 Jun 2020 20:32:08 +0000 (16:32 -0400)
committerGitHub <noreply@github.com>
Sun, 7 Jun 2020 20:32:08 +0000 (16:32 -0400)
* Handle partially stacked scatter charts
* Update test files

src/core/core.datasetController.js
test/fixtures/controller.line/stacking/stacked-scatter.js [new file with mode: 0644]
test/fixtures/controller.line/stacking/stacked-scatter.png [new file with mode: 0644]

index 478f773605621646d80dbeecb6590f359efc5665..a5626b899a8274fd885417531b197c242005c659 100644 (file)
@@ -638,8 +638,9 @@ export default class DatasetController {
                let i, value, parsed, otherValue;
 
                function _compute() {
-                       if (stack) {
-                               stack.values = parsed._stacks[scale.axis];
+                       const values = stack && parsed._stacks[scale.axis];
+                       if (stack && values) {
+                               stack.values = values;
                                // Need to consider individual stack values for data range,
                                // in addition to the stacked value
                                min = Math.min(min, value);
diff --git a/test/fixtures/controller.line/stacking/stacked-scatter.js b/test/fixtures/controller.line/stacking/stacked-scatter.js
new file mode 100644 (file)
index 0000000..7fa6032
--- /dev/null
@@ -0,0 +1,68 @@
+module.exports = {
+       config: {
+               type: 'scatter',
+               data: {
+                       datasets: [{
+                               label: 'label1',
+                               data: [{
+                                       x: 0,
+                                       y: 30
+                               }, {
+                                       x: 5,
+                                       y: 35
+                               }, {
+                                       x: 10,
+                                       y: 20
+                               }],
+                               backgroundColor: '#42A8E4'
+                       },
+                       {
+                               label: 'label2',
+                               data: [{
+                                       x: 0,
+                                       y: 10
+                               }, {
+                                       x: 5,
+                                       y: 15
+                               }, {
+                                       x: 10,
+                                       y: 15
+                               }],
+                               backgroundColor: '#FC3F55'
+                       },
+                       {
+                               label: 'label3',
+                               data: [{
+                                       x: 0,
+                                       y: -15
+                               }, {
+                                       x: 5,
+                                       y: -10
+                               }, {
+                                       x: 10,
+                                       y: -20
+                               }],
+                               backgroundColor: '#FFBE3F'
+                       }],
+               },
+               options: {
+                       scales: {
+                               x: {
+                                       display: false,
+                                       position: 'bottom',
+                               },
+                               y: {
+                                       stacked: true,
+                                       display: false,
+                                       position: 'left',
+                               },
+                       },
+               },
+       },
+       options: {
+               canvas: {
+                       height: 256,
+                       width: 512
+               }
+       }
+};
diff --git a/test/fixtures/controller.line/stacking/stacked-scatter.png b/test/fixtures/controller.line/stacking/stacked-scatter.png
new file mode 100644 (file)
index 0000000..cfe32c7
Binary files /dev/null and b/test/fixtures/controller.line/stacking/stacked-scatter.png differ