@@ -3479,7 +3479,8 @@ axes.drawLabels = function(gd, ax, opts) {
3479
3479
3480
3480
var labelFns = opts . labelFns ;
3481
3481
var tickAngle = opts . secondary ? 0 : ax . tickangle ;
3482
- var autoTickAngles = ax . autotickangles || [ 30 , 90 ] ;
3482
+
3483
+ var autoTickAngles = ax . autotickangles ;
3483
3484
var prevAngle = ( ax . _prevTickAngles || { } ) [ cls ] ;
3484
3485
3485
3486
var tickLabels = opts . layer . selectAll ( 'g.' + cls )
@@ -3782,19 +3783,24 @@ axes.drawLabels = function(gd, ax, opts) {
3782
3783
var pad = ! isAligned ? 0 :
3783
3784
( ax . tickwidth || 0 ) + 2 * TEXTPAD ;
3784
3785
3785
- var adjacent = tickSpacing ;
3786
- var opposite = maxFontSize * 1.25 * maxLines ;
3787
- var hypotenuse = Math . sqrt ( Math . pow ( adjacent , 2 ) + Math . pow ( opposite , 2 ) ) ;
3788
- // sin(angle) = opposite / hypotenuse
3789
- var minAngle = Math . asin ( opposite / hypotenuse ) * ( 180 / Math . PI /* to degrees */ ) ;
3790
-
3791
- var angle = autoTickAngles . find ( function ( angle ) { return Math . abs ( angle ) >= minAngle ; } ) ;
3792
- if ( angle === undefined ) {
3793
- // no angle larger than minAngle, just pick the largest angle
3794
- angle = autoTickAngles . reduce (
3795
- function ( currentMax , nextAngle ) { return Math . abs ( currentMax ) < Math . abs ( nextAngle ) ? nextAngle : currentMax ; }
3796
- , autoTickAngles [ 0 ]
3797
- ) ;
3786
+ // old behavior for backwards-compatibility
3787
+ var angle = ( ( tickSpacing < maxFontSize * 2.5 ) || ax . type === 'multicategory' || ax . _name === 'realaxis' ) ? 90 : 30 ;
3788
+ // autotickangles
3789
+ if ( autoTickAngles !== undefined ) {
3790
+ var adjacent = tickSpacing ;
3791
+ var opposite = maxFontSize * 1.25 * maxLines ;
3792
+ var hypotenuse = Math . sqrt ( Math . pow ( adjacent , 2 ) + Math . pow ( opposite , 2 ) ) ;
3793
+ // sin(angle) = opposite / hypotenuse
3794
+ var minAngle = Math . asin ( opposite / hypotenuse ) * ( 180 / Math . PI /* to degrees */ ) ;
3795
+
3796
+ angle = autoTickAngles . find ( function ( angle ) { return Math . abs ( angle ) >= minAngle ; } ) ;
3797
+ if ( angle === undefined ) {
3798
+ // no angle larger than minAngle, just pick the largest angle
3799
+ angle = autoTickAngles . reduce (
3800
+ function ( currentMax , nextAngle ) { return Math . abs ( currentMax ) < Math . abs ( nextAngle ) ? nextAngle : currentMax ; }
3801
+ , autoTickAngles [ 0 ]
3802
+ ) ;
3803
+ }
3798
3804
}
3799
3805
if ( prevAngle !== undefined ) {
3800
3806
angle = Math . abs ( angle ) > Math . abs ( prevAngle ) ? angle : prevAngle ;
0 commit comments