Skip to content

Commit d0e8fe5

Browse files
committed
add logic to reverse y axis by default if only funnels
1 parent 02a176a commit d0e8fe5

File tree

2 files changed

+33
-13
lines changed

2 files changed

+33
-13
lines changed

Diff for: src/plots/cartesian/axis_defaults.js

+8-1
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,11 @@ var setConvert = require('./set_convert');
3131
* noTickson: boolean, this axis doesn't support 'tickson'
3232
* data: the plot data, used to manage categories
3333
* bgColor: the plot background color, to calculate default gridline colors
34+
* calendar:
35+
* splomStash:
36+
* visibleDflt: boolean
37+
* reverseDflt: boolean
38+
* automargin: boolean
3439
*/
3540
module.exports = function handleAxisDefaults(containerIn, containerOut, coerce, options, layoutOut) {
3641
var letter = options.letter;
@@ -48,7 +53,9 @@ module.exports = function handleAxisDefaults(containerIn, containerOut, coerce,
4853

4954
setConvert(containerOut, layoutOut);
5055

51-
var autoRange = coerce('autorange', !containerOut.isValidRange(containerIn.range));
56+
var autorangeDflt = !containerOut.isValidRange(containerIn.range);
57+
if(autorangeDflt && options.reverseDflt) autorangeDflt = 'reversed';
58+
var autoRange = coerce('autorange', autorangeDflt);
5259
if(autoRange && (axType === 'linear' || axType === '-')) coerce('rangemode');
5360

5461
coerce('range');

Diff for: src/plots/cartesian/layout_defaults.js

+25-12
Original file line numberDiff line numberDiff line change
@@ -35,10 +35,12 @@ function appendList(cont, k, item) {
3535

3636
module.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

Comments
 (0)