Skip to content

Commit c61e642

Browse files
committed
bar: fix image test failure in hist_grouped
* Allow minDtick update if barmode is group and bars overlap.
1 parent 8dfa0bd commit c61e642

File tree

1 file changed

+18
-27
lines changed

1 file changed

+18
-27
lines changed

src/traces/bar/set_positions.js

Lines changed: 18 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -77,18 +77,12 @@ function setGroupPositionsInOverlayMode(gd, pa, sa, traces) {
7777
traces.forEach(function(trace) {
7878
var sieve = new Sieve(
7979
[trace], separateNegativeValues, dontMergeOverlappingData
80-
),
81-
minDiff = sieve.minDiff,
82-
distinctPositions = sieve.distinctPositions;
80+
);
8381

84-
// set bar offsets and widths
82+
// set bar offsets and widths, and update position axis
8583
setOffsetAndWidth(gd, pa, sieve);
8684

87-
// update position axis
88-
Axes.minDtick(pa, minDiff, distinctPositions[0]);
89-
Axes.expand(pa, distinctPositions, {vpad: minDiff / 2});
90-
91-
// update size axis and set bar bases and sizes
85+
// set bar bases and sizes, and update size axis
9286
if(barnorm) {
9387
stackBars(gd, sa, sieve);
9488
}
@@ -112,18 +106,12 @@ function setGroupPositionsInGroupMode(gd, pa, sa, traces) {
112106
dontMergeOverlappingData = !barnorm,
113107
sieve = new Sieve(
114108
traces, separateNegativeValues, dontMergeOverlappingData
115-
),
116-
minDiff = sieve.minDiff,
117-
distinctPositions = sieve.distinctPositions;
109+
);
118110

119-
// set bar offsets and widths
111+
// set bar offsets and widths, and update position axis
120112
setOffsetAndWidthInGroupMode(gd, pa, sieve);
121113

122-
// update position axis
123-
Axes.minDtick(pa, minDiff, distinctPositions[0]);
124-
Axes.expand(pa, distinctPositions, {vpad: minDiff / 2});
125-
126-
// update size axis and set bar bases and sizes
114+
// set bar bases and sizes, and update size axis
127115
if(barnorm) {
128116
stackBars(gd, sa, sieve);
129117
}
@@ -151,18 +139,12 @@ function setGroupPositionsInStackOrRelativeMode(gd, pa, sa, traces) {
151139
dontMergeOverlappingData = !(barnorm || stack || relative),
152140
sieve = new Sieve(
153141
traces, separateNegativeValues, dontMergeOverlappingData
154-
),
155-
minDiff = sieve.minDiff,
156-
distinctPositions = sieve.distinctPositions;
142+
);
157143

158-
// set bar offsets and widths
144+
// set bar offsets and widths, and update position axis
159145
setOffsetAndWidth(gd, pa, sieve);
160146

161-
// update position axis
162-
Axes.minDtick(pa, minDiff, distinctPositions[0]);
163-
Axes.expand(pa, distinctPositions, {vpad: minDiff / 2});
164-
165-
// set bar bases and sizes
147+
// set bar bases and sizes, and update size axis
166148
stackBars(gd, sa, sieve);
167149
}
168150

@@ -173,6 +155,7 @@ function setOffsetAndWidth(gd, pa, sieve) {
173155
traces = sieve.traces,
174156
bargap = fullLayout.bargap,
175157
bargroupgap = fullLayout.bargroupgap,
158+
distinctPositions = sieve.distinctPositions,
176159
minDiff = sieve.minDiff;
177160

178161
// set bar offsets and widths
@@ -199,6 +182,10 @@ function setOffsetAndWidth(gd, pa, sieve) {
199182
bar[pLetter] = bar.p + barCenter;
200183
}
201184
}
185+
186+
// update position axes
187+
Axes.minDtick(pa, minDiff, distinctPositions[0]);
188+
Axes.expand(pa, distinctPositions, {vpad: minDiff / 2});
202189
}
203190

204191

@@ -243,6 +230,10 @@ function setOffsetAndWidthInGroupMode(gd, pa, sieve) {
243230
bar[pLetter] = bar.p + barCenter;
244231
}
245232
}
233+
234+
// update position axes
235+
Axes.minDtick(pa, minDiff, distinctPositions[0], overlap);
236+
Axes.expand(pa, distinctPositions, {vpad: minDiff / 2});
246237
}
247238

248239

0 commit comments

Comments
 (0)