@@ -35,10 +35,12 @@ function appendList(cont, k, item) {
3535
3636module . exports = function supplyLayoutDefaults ( layoutIn , layoutOut , fullData ) {
3737 var ax2traces = { } ;
38- var xaHide = { } ;
39- var yaHide = { } ;
40- var xaDisplay = { } ;
41- var yaDisplay = { } ;
38+ var xaMayHide = { } ;
39+ var yaMayHide = { } ;
40+ var xaMustDisplay = { } ;
41+ var yaMustDisplay = { } ;
42+ var yaMustForward = { } ;
43+ var yaMayBackward = { } ;
4244 var outerTicks = { } ;
4345 var noGrids = { } ;
4446 var i , j ;
@@ -71,15 +73,20 @@ module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {
7173 // logic for funnels
7274 if ( trace . type === 'funnel' ) {
7375 if ( trace . orientation === 'h' ) {
74- if ( xaName ) xaHide [ xaName ] = true ;
76+ if ( xaName ) xaMayHide [ xaName ] = true ;
77+ if ( yaName ) yaMayBackward [ yaName ] = true ;
7578 } else {
76- if ( yaName ) yaHide [ yaName ] = true ;
79+ if ( yaName ) yaMayHide [ yaName ] = true ;
7780 }
7881 } else {
82+ if ( yaName ) {
83+ yaMustDisplay [ yaName ] = true ;
84+ yaMustForward [ yaName ] = true ;
85+ }
86+
7987 if ( ! traceIs ( trace , 'carpet' ) || ( trace . type === 'carpet' && ! trace . _cheater ) ) {
80- if ( xaName ) xaDisplay [ xaName ] = true ;
88+ if ( xaName ) xaMustDisplay [ xaName ] = true ;
8189 }
82- if ( yaName ) yaDisplay [ yaName ] = true ;
8390 }
8491
8592 // Two things trigger axis visibility:
@@ -91,7 +98,7 @@ module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {
9198 // full condition triggering hiding is:
9299 // *could* be a cheater and *is not definitely visible*
93100 if ( trace . type === 'carpet' && trace . _cheater ) {
94- if ( xaName ) xaHide [ xaName ] = true ;
101+ if ( xaName ) xaMayHide [ xaName ] = true ;
95102 }
96103
97104 // check for default formatting tweaks
@@ -180,6 +187,13 @@ module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {
180187
181188 var overlayableAxes = getOverlayableAxes ( axLetter , axName ) ;
182189
190+ var visibleDflt =
191+ ( axLetter === 'x' && ! xaMustDisplay [ axName ] && xaMayHide [ axName ] ) ||
192+ ( axLetter === 'y' && ! yaMustDisplay [ axName ] && yaMayHide [ axName ] ) ;
193+
194+ var reverseDflt =
195+ ( axLetter === 'y' && ! yaMustForward [ axName ] && yaMayBackward [ axName ] ) ;
196+
183197 var defaultOptions = {
184198 letter : axLetter ,
185199 font : layoutOut . font ,
@@ -189,9 +203,8 @@ module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {
189203 bgColor : bgColor ,
190204 calendar : layoutOut . calendar ,
191205 automargin : true ,
192- visibleDflt :
193- ( axLetter === 'x' && xaHide [ axName ] && ! xaDisplay [ axName ] ) ||
194- ( axLetter === 'y' && yaHide [ axName ] && ! yaDisplay [ axName ] ) ,
206+ visibleDflt : visibleDflt ,
207+ reverseDflt : reverseDflt ,
195208 splomStash : ( ( layoutOut . _splomAxes || { } ) [ axLetter ] || { } ) [ id ]
196209 } ;
197210
0 commit comments