@@ -35,10 +35,12 @@ function appendList(cont, k, item) {
35
35
36
36
module . exports = function supplyLayoutDefaults ( layoutIn , layoutOut , fullData ) {
37
37
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 = { } ;
42
44
var outerTicks = { } ;
43
45
var noGrids = { } ;
44
46
var i , j ;
@@ -71,15 +73,20 @@ module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {
71
73
// logic for funnels
72
74
if ( trace . type === 'funnel' ) {
73
75
if ( trace . orientation === 'h' ) {
74
- if ( xaName ) xaHide [ xaName ] = true ;
76
+ if ( xaName ) xaMayHide [ xaName ] = true ;
77
+ if ( yaName ) yaMayBackward [ yaName ] = true ;
75
78
} else {
76
- if ( yaName ) yaHide [ yaName ] = true ;
79
+ if ( yaName ) yaMayHide [ yaName ] = true ;
77
80
}
78
81
} else {
82
+ if ( yaName ) {
83
+ yaMustDisplay [ yaName ] = true ;
84
+ yaMustForward [ yaName ] = true ;
85
+ }
86
+
79
87
if ( ! traceIs ( trace , 'carpet' ) || ( trace . type === 'carpet' && ! trace . _cheater ) ) {
80
- if ( xaName ) xaDisplay [ xaName ] = true ;
88
+ if ( xaName ) xaMustDisplay [ xaName ] = true ;
81
89
}
82
- if ( yaName ) yaDisplay [ yaName ] = true ;
83
90
}
84
91
85
92
// Two things trigger axis visibility:
@@ -91,7 +98,7 @@ module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {
91
98
// full condition triggering hiding is:
92
99
// *could* be a cheater and *is not definitely visible*
93
100
if ( trace . type === 'carpet' && trace . _cheater ) {
94
- if ( xaName ) xaHide [ xaName ] = true ;
101
+ if ( xaName ) xaMayHide [ xaName ] = true ;
95
102
}
96
103
97
104
// check for default formatting tweaks
@@ -180,6 +187,13 @@ module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {
180
187
181
188
var overlayableAxes = getOverlayableAxes ( axLetter , axName ) ;
182
189
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
+
183
197
var defaultOptions = {
184
198
letter : axLetter ,
185
199
font : layoutOut . font ,
@@ -189,9 +203,8 @@ module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {
189
203
bgColor : bgColor ,
190
204
calendar : layoutOut . calendar ,
191
205
automargin : true ,
192
- visibleDflt :
193
- ( axLetter === 'x' && xaHide [ axName ] && ! xaDisplay [ axName ] ) ||
194
- ( axLetter === 'y' && yaHide [ axName ] && ! yaDisplay [ axName ] ) ,
206
+ visibleDflt : visibleDflt ,
207
+ reverseDflt : reverseDflt ,
195
208
splomStash : ( ( layoutOut . _splomAxes || { } ) [ axLetter ] || { } ) [ id ]
196
209
} ;
197
210
0 commit comments