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