From 7e0a22895449cdf553106dfa1a89480eddf05be4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89tienne=20T=C3=A9treault-Pinard?= Date: Mon, 21 Jan 2019 17:21:30 -0500 Subject: [PATCH] fix #3031 - don't set tozero:true when all bar bases are above zero --- src/traces/bar/cross_trace_calc.js | 16 +++++++++++++-- .../bar_autorange-above-zero-normalized.png | Bin 0 -> 9542 bytes .../baselines/bar_autorange-above-zero.png | Bin 0 -> 8640 bytes .../bar_autorange-above-zero-normalized.json | 19 ++++++++++++++++++ .../image/mocks/bar_autorange-above-zero.json | 18 +++++++++++++++++ 5 files changed, 51 insertions(+), 2 deletions(-) create mode 100644 test/image/baselines/bar_autorange-above-zero-normalized.png create mode 100644 test/image/baselines/bar_autorange-above-zero.png create mode 100644 test/image/mocks/bar_autorange-above-zero-normalized.json create mode 100644 test/image/mocks/bar_autorange-above-zero.json diff --git a/src/traces/bar/cross_trace_calc.js b/src/traces/bar/cross_trace_calc.js index 6d87b74572c..2a0224dc35e 100644 --- a/src/traces/bar/cross_trace_calc.js +++ b/src/traces/bar/cross_trace_calc.js @@ -471,6 +471,7 @@ function setBaseAndTop(gd, sa, sieve) { var calcTrace = calcTraces[i]; var fullTrace = calcTrace[0].trace; var pts = []; + var allBarBaseAboveZero = true; for(var j = 0; j < calcTrace.length; j++) { var bar = calcTrace[j]; @@ -480,10 +481,14 @@ function setBaseAndTop(gd, sa, sieve) { bar[sLetter] = barTop; pts.push(barTop); if(bar.hasB) pts.push(barBase); + + if(!bar.hasB || !(bar.b > 0 && bar.s > 0)) { + allBarBaseAboveZero = false; + } } fullTrace._extremes[sa._id] = Axes.findExtremes(sa, pts, { - tozero: true, + tozero: !allBarBaseAboveZero, padded: true }); } @@ -522,6 +527,8 @@ function stackBars(gd, sa, sieve) { // if barnorm is set, let normalizeBars update the axis range if(!barnorm) { fullTrace._extremes[sa._id] = Axes.findExtremes(sa, pts, { + // N.B. we don't stack base with 'base', + // so set tozero:true always! tozero: true, padded: true }); @@ -567,6 +574,7 @@ function normalizeBars(gd, sa, sieve) { var calcTrace = calcTraces[i]; var fullTrace = calcTrace[0].trace; var pts = []; + var allBarBaseAboveZero = true; var padded = false; for(var j = 0; j < calcTrace.length; j++) { @@ -588,11 +596,15 @@ function normalizeBars(gd, sa, sieve) { pts.push(barBase); padded = padded || needsPadding(barBase); } + + if(!bar.hasB || !(bar.b > 0 && bar.s > 0)) { + allBarBaseAboveZero = false; + } } } fullTrace._extremes[sa._id] = Axes.findExtremes(sa, pts, { - tozero: true, + tozero: !allBarBaseAboveZero, padded: padded }); } diff --git a/test/image/baselines/bar_autorange-above-zero-normalized.png b/test/image/baselines/bar_autorange-above-zero-normalized.png new file mode 100644 index 0000000000000000000000000000000000000000..407673e79228da6acd90396d89977c005173d61b GIT binary patch literal 9542 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 literal 0 HcmV?d00001 diff --git a/test/image/mocks/bar_autorange-above-zero-normalized.json b/test/image/mocks/bar_autorange-above-zero-normalized.json new file mode 100644 index 00000000000..02b1983a4bf --- /dev/null +++ b/test/image/mocks/bar_autorange-above-zero-normalized.json @@ -0,0 +1,19 @@ +{ + "data": [ + { + "y": [1, 2, 3], + "base": [3, 4, 5], + "type": "bar" + }, + { + "y": [1, 2, 3], + "base": [3, 4, 5], + "type": "bar" + } + ], + "layout": { + "barnorm": "percent", + "width": 400, + "height": 400 + } +} diff --git a/test/image/mocks/bar_autorange-above-zero.json b/test/image/mocks/bar_autorange-above-zero.json new file mode 100644 index 00000000000..f6b346b0999 --- /dev/null +++ b/test/image/mocks/bar_autorange-above-zero.json @@ -0,0 +1,18 @@ +{ + "data": [ + { + "y": [1, 2, 3], + "base": [3, 4, 5], + "type": "bar" + }, + { + "y": [1, 2, 3], + "base": [3, 4, 5], + "type": "bar" + } + ], + "layout": { + "width": 400, + "height": 400 + } +}