@@ -661,28 +661,29 @@ axes.prepTicks = function(ax, opts) {
661
661
if ( ax . tickmode === 'sync' ) {
662
662
var baseAxis = ax . _mainAxis ;
663
663
664
+ // get range min and max to find range delta of axis 1
664
665
var minValBaseAxis = Math . min ( baseAxis . range [ 0 ] , baseAxis . range [ 1 ] ) ;
665
666
var maxValBaseAxis = Math . max ( baseAxis . range [ 0 ] , baseAxis . range [ 1 ] ) ;
666
-
667
667
var rangeDeltaBaseAxis = Math . abs ( maxValBaseAxis - minValBaseAxis ) ;
668
668
669
- var dtickRatio = rangeDeltaBaseAxis / baseAxis . dtick ;
670
-
669
+ // get range min and max to find range delta of axis 2
671
670
var minValAxis = Math . min ( ax . range [ 0 ] , ax . range [ 1 ] ) ;
672
671
var maxValAxis = Math . max ( ax . range [ 0 ] , ax . range [ 1 ] ) ;
672
+ var rangeDeltaCurrentAxis = Math . abs ( maxValAxis - minValAxis ) ;
673
673
674
- var rangeDeltaAxis = Math . abs ( maxValAxis - minValAxis ) ;
675
-
676
- ax . dtick = rangeDeltaAxis / dtickRatio ;
674
+ // set second axis' dtick value to be based off of same ratio as the first axis
675
+ var dtickRatio = rangeDeltaBaseAxis / baseAxis . dtick ;
676
+ ax . dtick = rangeDeltaCurrentAxis / dtickRatio ;
677
677
678
+ // validate that the axis has values before we try to use them for tick0 calculation
678
679
if ( baseAxis && baseAxis . _vals . length > 0 ) {
680
+ // get position of first axis' starting tick
679
681
var firstTickPosition = baseAxis . l2p ( baseAxis . _vals [ 0 ] . x ) ;
680
-
681
682
var firstTickPercentage = firstTickPosition / baseAxis . _length ;
682
683
683
- var offsetVal = rangeDeltaAxis * ( 1 - firstTickPercentage ) ;
684
-
685
- ax . tick0 = offsetVal + minValAxis ;
684
+ // set current axis to have same starting tick position
685
+ var currentAxisOffsetVal = rangeDeltaCurrentAxis * ( 1 - firstTickPercentage ) ;
686
+ ax . tick0 = currentAxisOffsetVal + minValAxis ;
686
687
}
687
688
} else if ( ax . tickmode === 'auto' || ! ax . dtick ) { // calculate max number of (auto) ticks to display based on plot size
688
689
var nt = ax . nticks ;
0 commit comments