@@ -41,10 +41,7 @@ module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {
4141 var yaMustDisplay = { } ;
4242 var yaMustNotReverse = { } ;
4343 var yaMayReverse = { } ;
44- var yaMustNotScaleanchor = { } ;
45- var yaMayScaleanchor = { } ;
46- var yaMustNotConstrainDomain = { } ;
47- var yaMayConstrainDomain = { } ;
44+ var axHasImage = { } ;
4845 var outerTicks = { } ;
4946 var noGrids = { } ;
5047 var i , j ;
@@ -82,20 +79,13 @@ module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {
8279 } else {
8380 if ( yaName ) yaMayHide [ yaName ] = true ;
8481 }
85- yaMustNotScaleanchor [ yaName ] = true ;
86- yaMustNotConstrainDomain [ yaName ] = true ;
8782 } else if ( trace . type === 'image' ) {
88- if ( yaName ) {
89- yaMayReverse [ yaName ] = true ;
90- yaMayScaleanchor [ yaName ] = true ;
91- yaMayConstrainDomain [ yaName ] = true ;
92- }
83+ if ( yaName ) axHasImage [ yaName ] = true ;
84+ if ( xaName ) axHasImage [ xaName ] = true ;
9385 } else {
9486 if ( yaName ) {
9587 yaMustDisplay [ yaName ] = true ;
9688 yaMustNotReverse [ yaName ] = true ;
97- yaMustNotScaleanchor [ yaName ] = true ;
98- yaMustNotConstrainDomain [ yaName ] = true ;
9989 }
10090
10191 if ( ! traceIs ( trace , 'carpet' ) || ( trace . type === 'carpet' && ! trace . _cheater ) ) {
@@ -206,7 +196,11 @@ module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {
206196 ( axLetter === 'y' && ! yaMustDisplay [ axName ] && yaMayHide [ axName ] ) ;
207197
208198 var reverseDflt =
209- ( axLetter === 'y' && ! yaMustNotReverse [ axName ] && yaMayReverse [ axName ] ) ;
199+ ( axLetter === 'y' &&
200+ (
201+ ( ! yaMustNotReverse [ axName ] && yaMayReverse [ axName ] ) ||
202+ axHasImage [ axName ]
203+ ) ) ;
210204
211205 var defaultOptions = {
212206 letter : axLetter ,
@@ -309,16 +303,12 @@ module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {
309303 axLayoutOut = layoutOut [ axName ] ;
310304
311305 var scaleanchorDflt = null ;
312- if ( axLetter === 'y' && ! axLayoutIn . hasOwnProperty ( 'scaleanchor' ) &&
313- ! yaMustNotScaleanchor [ axName ] && yaMayScaleanchor [ axName ]
314- ) {
306+ if ( axLetter === 'y' && ! axLayoutIn . hasOwnProperty ( 'scaleanchor' ) && axHasImage [ axName ] ) {
315307 scaleanchorDflt = axLayoutOut . anchor ;
316308 }
317309
318310 var constrainDflt = null ;
319- if ( axLetter === 'y' && ! axLayoutIn . hasOwnProperty ( 'constrain' ) &&
320- ! yaMustNotConstrainDomain [ axName ] && yaMayConstrainDomain [ axName ]
321- ) {
311+ if ( ! axLayoutIn . hasOwnProperty ( 'constrain' ) && axHasImage [ axName ] ) {
322312 constrainDflt = 'domain' ;
323313 }
324314 handleConstraintDefaults ( axLayoutIn , axLayoutOut , coerce , {
0 commit comments