@@ -420,52 +420,44 @@ function setBarCenterAndWidth(gd, pa, sieve) {
420
420
421
421
function updatePositionAxis ( gd , pa , sieve , allowMinDtick ) {
422
422
var calcTraces = sieve . traces ;
423
- var distinctPositions = sieve . distinctPositions ;
424
- var distinctPositions0 = distinctPositions [ 0 ] ;
425
423
var minDiff = sieve . minDiff ;
426
424
var vpad = minDiff / 2 ;
427
425
428
- Axes . minDtick ( pa , minDiff , distinctPositions0 , allowMinDtick ) ;
429
-
430
- // If the user set the bar width or the offset,
431
- // then bars can be shifted away from their positions
432
- // and widths can be larger than minDiff.
433
- //
434
- // Here, we compute pMin and pMax to expand the position axis,
435
- // so that all bars are fully within the axis range.
436
- var pMin = Math . min . apply ( Math , distinctPositions ) - vpad ;
437
- var pMax = Math . max . apply ( Math , distinctPositions ) + vpad ;
426
+ Axes . minDtick ( pa , sieve . minDiff , sieve . distinctPositions [ 0 ] , allowMinDtick ) ;
438
427
439
428
for ( var i = 0 ; i < calcTraces . length ; i ++ ) {
440
429
var calcTrace = calcTraces [ i ] ;
441
430
var calcTrace0 = calcTrace [ 0 ] ;
442
431
var fullTrace = calcTrace0 . trace ;
443
-
444
- if ( fullTrace . width === undefined && fullTrace . offset === undefined ) {
445
- continue ;
432
+ var pts = [ ] ;
433
+ var bar , l , r , j ;
434
+
435
+ for ( j = 0 ; j < calcTrace . length ; j ++ ) {
436
+ bar = calcTrace [ j ] ;
437
+ l = bar . p - vpad ;
438
+ r = bar . p + vpad ;
439
+ pts . push ( l , r ) ;
446
440
}
447
441
448
- var t = calcTrace0 . t ;
449
- var poffset = t . poffset ;
450
- var barwidth = t . barwidth ;
451
- var poffsetIsArray = Array . isArray ( poffset ) ;
452
- var barwidthIsArray = Array . isArray ( barwidth ) ;
453
-
454
- for ( var j = 0 ; j < calcTrace . length ; j ++ ) {
455
- var calcBar = calcTrace [ j ] ;
456
- var calcBarOffset = ( poffsetIsArray ) ? poffset [ j ] : poffset ;
457
- var calcBarWidth = ( barwidthIsArray ) ? barwidth [ j ] : barwidth ;
458
- var p = calcBar . p ;
459
- var l = p + calcBarOffset ;
460
- var r = l + calcBarWidth ;
461
-
462
- pMin = Math . min ( pMin , l ) ;
463
- pMax = Math . max ( pMax , r ) ;
442
+ if ( fullTrace . width || fullTrace . offset ) {
443
+ var t = calcTrace0 . t ;
444
+ var poffset = t . poffset ;
445
+ var barwidth = t . barwidth ;
446
+ var poffsetIsArray = Array . isArray ( poffset ) ;
447
+ var barwidthIsArray = Array . isArray ( barwidth ) ;
448
+
449
+ for ( j = 0 ; j < calcTrace . length ; j ++ ) {
450
+ bar = calcTrace [ j ] ;
451
+ var calcBarOffset = poffsetIsArray ? poffset [ j ] : poffset ;
452
+ var calcBarWidth = barwidthIsArray ? barwidth [ j ] : barwidth ;
453
+ l = bar . p + calcBarOffset ;
454
+ r = l + calcBarWidth ;
455
+ pts . push ( l , r ) ;
456
+ }
464
457
}
465
- }
466
458
467
- var extremes = Axes . findExtremes ( pa , [ pMin , pMax ] , { padded : false } ) ;
468
- putExtremes ( calcTraces , pa , extremes ) ;
459
+ fullTrace . _extremes [ pa . _id ] = Axes . findExtremes ( pa , pts , { padded : false } ) ;
460
+ }
469
461
}
470
462
471
463
function expandRange ( range , newValue ) {
0 commit comments