@@ -41,8 +41,7 @@ module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {
4141 var yaMustDisplay = { } ;
4242 var yaMustNotReverse = { } ;
4343 var yaMayReverse = { } ;
44- var yaMustNotScaleanchor = { } ;
45- var yaMayScaleanchor = { } ;
44+ var axHasImage = { } ;
4645 var outerTicks = { } ;
4746 var noGrids = { } ;
4847 var i , j ;
@@ -80,17 +79,13 @@ module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {
8079 } else {
8180 if ( yaName ) yaMayHide [ yaName ] = true ;
8281 }
83- yaMustNotScaleanchor [ yaName ] = true ;
8482 } else if ( trace . type === 'image' ) {
85- if ( yaName ) {
86- yaMayReverse [ yaName ] = true ;
87- yaMayScaleanchor [ yaName ] = true ;
88- }
83+ if ( yaName ) axHasImage [ yaName ] = true ;
84+ if ( xaName ) axHasImage [ xaName ] = true ;
8985 } else {
9086 if ( yaName ) {
9187 yaMustDisplay [ yaName ] = true ;
9288 yaMustNotReverse [ yaName ] = true ;
93- yaMustNotScaleanchor [ yaName ] = true ;
9489 }
9590
9691 if ( ! traceIs ( trace , 'carpet' ) || ( trace . type === 'carpet' && ! trace . _cheater ) ) {
@@ -201,7 +196,11 @@ module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {
201196 ( axLetter === 'y' && ! yaMustDisplay [ axName ] && yaMayHide [ axName ] ) ;
202197
203198 var reverseDflt =
204- ( axLetter === 'y' && ! yaMustNotReverse [ axName ] && yaMayReverse [ axName ] ) ;
199+ ( axLetter === 'y' &&
200+ (
201+ ( ! yaMustNotReverse [ axName ] && yaMayReverse [ axName ] ) ||
202+ axHasImage [ axName ]
203+ ) ) ;
205204
206205 var defaultOptions = {
207206 letter : axLetter ,
@@ -303,16 +302,21 @@ module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {
303302 axLayoutIn = layoutIn [ axName ] ;
304303 axLayoutOut = layoutOut [ axName ] ;
305304
306- var scaleanchorDflt = null ;
307- if ( axLetter === 'y' && ! axLayoutIn . hasOwnProperty ( 'scaleanchor' ) &&
308- ! yaMustNotScaleanchor [ axName ] && yaMayScaleanchor [ axName ]
309- ) {
305+ var scaleanchorDflt ;
306+ if ( axLetter === 'y' && ! axLayoutIn . hasOwnProperty ( 'scaleanchor' ) && axHasImage [ axName ] ) {
310307 scaleanchorDflt = axLayoutOut . anchor ;
311- }
308+ } else { scaleanchorDflt = undefined ; }
309+
310+ var constrainDflt ;
311+ if ( ! axLayoutIn . hasOwnProperty ( 'constrain' ) && axHasImage [ axName ] ) {
312+ constrainDflt = 'domain' ;
313+ } else { constrainDflt = undefined ; }
314+
312315 handleConstraintDefaults ( axLayoutIn , axLayoutOut , coerce , {
313316 allAxisIds : allAxisIds ,
314317 layoutOut : layoutOut ,
315- scaleanchorDflt : scaleanchorDflt
318+ scaleanchorDflt : scaleanchorDflt ,
319+ constrainDflt : constrainDflt
316320 } ) ;
317321 }
318322
0 commit comments