@@ -120,8 +120,8 @@ function getAutoRange(gd, ax) {
120120 } else if ( dv / axLen > mbest ) {
121121 // in case of padding longer than the axis
122122 // at least include the unpadded data values.
123- minbest = { val : minpt . val , pad : 0 } ;
124- maxbest = { val : maxpt . val , pad : 0 } ;
123+ minbest = { val : minpt . val , nopad : 1 } ;
124+ maxbest = { val : maxpt . val , nopad : 1 } ;
125125 mbest = dv / axLen ;
126126 }
127127 }
@@ -158,17 +158,17 @@ function getAutoRange(gd, ax) {
158158 } else {
159159 if ( toZero ) {
160160 if ( minbest . val >= 0 ) {
161- minbest = { val : 0 , pad : 0 } ;
161+ minbest = { val : 0 , nopad : 1 } ;
162162 }
163163 if ( maxbest . val <= 0 ) {
164- maxbest = { val : 0 , pad : 0 } ;
164+ maxbest = { val : 0 , nopad : 1 } ;
165165 }
166166 } else if ( nonNegative ) {
167167 if ( minbest . val - mbest * getPadMin ( minbest ) < 0 ) {
168- minbest = { val : 0 , pad : 0 } ;
168+ minbest = { val : 0 , nopad : 1 } ;
169169 }
170170 if ( maxbest . val <= 0 ) {
171- maxbest = { val : 1 , pad : 0 } ;
171+ maxbest = { val : 1 , nopad : 1 } ;
172172 }
173173 }
174174
@@ -226,10 +226,15 @@ function makePadFn(fullLayout, ax, max) {
226226 var A = 0 ;
227227 var B = 0 ;
228228 if ( ! isLinked ( fullLayout , ax . _id ) ) {
229- if ( ax . rangemode !== 'nonnegative' ) {
229+ if (
230+ ax . rangemode !== 'tozero' &&
231+ ax . rangemode !== 'nonnegative'
232+ ) {
230233 A = padInsideLabelsOnAnchorAxis ( ax , max ) ;
231-
232- if ( anchorAxis . rangemode !== 'nonnegative' ) {
234+ if (
235+ anchorAxis . rangemode !== 'tozero' &&
236+ anchorAxis . rangemode !== 'nonnegative'
237+ ) {
233238 B = padInsideLabelsOnThisAxis ( ax , max ) ;
234239 }
235240 }
@@ -245,7 +250,10 @@ function makePadFn(fullLayout, ax, max) {
245250 ( ax . domain [ 1 ] - ax . domain [ 0 ] ) ;
246251 }
247252
248- return function getPad ( pt ) { return pt . pad + ( pt . extrapad ? extrappad : zero ) ; } ;
253+ return function getPad ( pt ) {
254+ if ( pt . nopad ) return 0 ;
255+ return pt . pad + ( pt . extrapad ? extrappad : zero ) ;
256+ } ;
249257}
250258
251259var TEXTPAD = 3 ;
0 commit comments