From 6899539fcbfa2b4559218a48d7fb736741738bc0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89tienne=20T=C3=A9treault-Pinard?= Date: Thu, 28 Mar 2019 16:28:38 -0400 Subject: [PATCH] fix stacked scatter for groupby traces --- src/traces/scatter/calc.js | 3 ++- test/image/baselines/stacked_area_groupby.png | Bin 0 -> 17020 bytes test/image/mocks/stacked_area_groupby.json | 18 ++++++++++++++++++ 3 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 test/image/baselines/stacked_area_groupby.png create mode 100644 test/image/mocks/stacked_area_groupby.json diff --git a/src/traces/scatter/calc.js b/src/traces/scatter/calc.js index 7657b790d48..28f6f16db70 100644 --- a/src/traces/scatter/calc.js +++ b/src/traces/scatter/calc.js @@ -38,8 +38,9 @@ function calc(gd, trace) { var yAttr = 'y'; var posAttr; if(stackGroupOpts) { - stackGroupOpts.traceIndices.push(trace.index); + Lib.pushUnique(stackGroupOpts.traceIndices, trace._expandedIndex); isV = stackGroupOpts.orientation === 'v'; + // size, like we use for bar if(isV) { yAttr = 's'; diff --git a/test/image/baselines/stacked_area_groupby.png b/test/image/baselines/stacked_area_groupby.png new file mode 100644 index 0000000000000000000000000000000000000000..bcdd0536180e22ce65c31c77789558735ba5998f GIT binary patch literal 17020 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 V@9