@@ -3472,16 +3472,13 @@ axes.drawLabels = function(gd, ax, opts) {
3472
3472
3473
3473
var fullLayout = gd . _fullLayout ;
3474
3474
var axId = ax . _id ;
3475
- var axLetter = axId . charAt ( 0 ) ;
3476
3475
var cls = opts . cls || axId + 'tick' ;
3477
3476
3478
3477
var vals = opts . vals . filter ( function ( d ) { return d . text ; } ) ;
3479
3478
3480
3479
var labelFns = opts . labelFns ;
3481
3480
var tickAngle = opts . secondary ? 0 : ax . tickangle ;
3482
3481
3483
- var autoTickAnglesRadians = ( ax . autotickangles || [ 0 , 30 , 90 ] )
3484
- . map ( function ( degrees ) { return degrees * Math . PI / 180 ; } ) ;
3485
3482
var prevAngle = ( ax . _prevTickAngles || { } ) [ cls ] ;
3486
3483
3487
3484
var tickLabels = opts . layer . selectAll ( 'g.' + cls )
@@ -3722,10 +3719,10 @@ axes.drawLabels = function(gd, ax, opts) {
3722
3719
// check for auto-angling if x labels overlap
3723
3720
// don't auto-angle at all for log axes with
3724
3721
// base and digit format
3725
- if ( vals . length && axLetter === 'x' && ! isNumeric ( tickAngle ) &&
3722
+ if ( vals . length && ax . autotickangles &&
3726
3723
( ax . type !== 'log' || String ( ax . dtick ) . charAt ( 0 ) !== 'D' )
3727
3724
) {
3728
- autoangle = 0 ;
3725
+ autoangle = ax . autotickangles [ 0 ] ;
3729
3726
3730
3727
var maxFontSize = 0 ;
3731
3728
var lbbArray = [ ] ;
@@ -3789,7 +3786,12 @@ axes.drawLabels = function(gd, ax, opts) {
3789
3786
var opposite = maxFontSize * 1.25 * maxLines ;
3790
3787
var hypotenuse = Math . sqrt ( Math . pow ( adjacent , 2 ) + Math . pow ( opposite , 2 ) ) ;
3791
3788
var maxCos = adjacent / hypotenuse ;
3792
- var angleRadians = autoTickAnglesRadians . find ( function ( angle ) { return Math . abs ( Math . cos ( angle ) ) <= maxCos ; } ) ;
3789
+ var autoTickAnglesRadians = ax . autotickangles . map (
3790
+ function ( degrees ) { return degrees * Math . PI / 180 ; }
3791
+ ) ;
3792
+ var angleRadians = autoTickAnglesRadians . find (
3793
+ function ( angle ) { return Math . abs ( Math . cos ( angle ) ) <= maxCos ; }
3794
+ ) ;
3793
3795
if ( angleRadians === undefined ) {
3794
3796
// no angle with smaller cosine than maxCos, just pick the angle with smallest cosine
3795
3797
angleRadians = autoTickAnglesRadians . reduce (
0 commit comments