Skip to content

Commit 9eb9598

Browse files
committed
fixes #3044 - don't try to makeCalcdata on visible:false traces
... in Histogram.calc loop looking for isFirstVisible trace
1 parent fdafdb9 commit 9eb9598

File tree

2 files changed

+22
-17
lines changed

2 files changed

+22
-17
lines changed

src/traces/histogram/calc.js

+12-10
Original file line numberDiff line numberDiff line change
@@ -251,16 +251,18 @@ function calcAllAutoBins(gd, trace, pa, mainData, _overlayEdgeCase) {
251251
var isFirstVisible = true;
252252
for(i = 0; i < traces.length; i++) {
253253
tracei = traces[i];
254-
pos0 = tracei._pos0 = pa.makeCalcdata(tracei, mainData);
255-
allPos = Lib.concat(allPos, pos0);
256-
delete tracei._autoBinFinished;
257-
if(trace.visible === true) {
258-
if(isFirstVisible) {
259-
isFirstVisible = false;
260-
}
261-
else {
262-
delete tracei._autoBin;
263-
tracei._autoBinFinished = 1;
254+
if(tracei.visible) {
255+
pos0 = tracei._pos0 = pa.makeCalcdata(tracei, mainData);
256+
allPos = Lib.concat(allPos, pos0);
257+
delete tracei._autoBinFinished;
258+
if(trace.visible === true) {
259+
if(isFirstVisible) {
260+
isFirstVisible = false;
261+
}
262+
else {
263+
delete tracei._autoBin;
264+
tracei._autoBinFinished = 1;
265+
}
264266
}
265267
}
266268
}

test/jasmine/tests/histogram_test.js

+10-7
Original file line numberDiff line numberDiff line change
@@ -796,6 +796,8 @@ describe('Test histogram', function() {
796796
x: [1, 2, 3], type: 'histogram'
797797
}, {
798798
x: [1, 2, 3], type: 'histogram'
799+
}, {
800+
type: 'histogram'
799801
}])
800802
.then(function() {
801803
assertTraceCount(3);
@@ -834,32 +836,33 @@ describe('Test histogram', function() {
834836
Plotly.newPlot(gd, [
835837
{type: 'histogram', x: [1]},
836838
{type: 'histogram', x: [10, 10.1, 10.2, 10.3]},
837-
{type: 'histogram', x: [20, 20, 20, 20, 20, 20, 20, 20, 20, 21]}
839+
{type: 'histogram', x: [20, 20, 20, 20, 20, 20, 20, 20, 20, 21]},
840+
{type: 'histogram'}
838841
])
839842
.then(function() {
840-
_assertBinCenters([[0], [10], [20]]);
843+
_assertBinCenters([[0], [10], [20], hidden]);
841844
return Plotly.restyle(gd, 'visible', 'legendonly', [1, 2]);
842845
})
843846
.then(function() {
844-
_assertBinCenters([[0], hidden, hidden]);
847+
_assertBinCenters([[0], hidden, hidden, hidden]);
845848
return Plotly.restyle(gd, 'visible', false, [1, 2]);
846849
})
847850
.then(function() {
848-
_assertBinCenters([[1], hidden, hidden]);
851+
_assertBinCenters([[1], hidden, hidden, hidden]);
849852
return Plotly.restyle(gd, 'visible', [false, false, true]);
850853
})
851854
.then(function() {
852-
_assertBinCenters([hidden, hidden, [20, 21]]);
855+
_assertBinCenters([hidden, hidden, [20, 21], hidden]);
853856
return Plotly.restyle(gd, 'visible', [false, true, false]);
854857
})
855858
.then(function() {
856-
_assertBinCenters([hidden, [10.1, 10.3], hidden]);
859+
_assertBinCenters([hidden, [10.1, 10.3], hidden, hidden]);
857860
// only one trace is visible, despite traces being grouped
858861
expect(gd._fullLayout.bargap).toBe(0);
859862
return Plotly.restyle(gd, 'visible', ['legendonly', true, 'legendonly']);
860863
})
861864
.then(function() {
862-
_assertBinCenters([hidden, [10], hidden]);
865+
_assertBinCenters([hidden, [10], hidden, hidden]);
863866
// legendonly traces still flip us back to gapped
864867
expect(gd._fullLayout.bargap).toBe(0.2);
865868
})

0 commit comments

Comments
 (0)