Skip to content

Commit 9e1869d

Browse files
committed
copy back axes categories on axes that skipped makeCalcdata,
... to make categorical axis ticks show up correctly
1 parent dd563bb commit 9e1869d

File tree

1 file changed

+30
-24
lines changed

1 file changed

+30
-24
lines changed

src/traces/splom/index.js

+30-24
Original file line numberDiff line numberDiff line change
@@ -36,19 +36,39 @@ function calc(gd, trace) {
3636
// only differ here for log axes, pass ldata to createMatrix as 'data'
3737
var cdata = opts.cdata = [];
3838
var ldata = opts.data = [];
39-
var i, k, dim;
39+
var i, k, dim, xa, ya;
40+
41+
function makeCalcdata(ax, dim) {
42+
// call makeCalcdata with fake input
43+
var ccol = ax.makeCalcdata({
44+
v: dim.values,
45+
vcalendar: trace.calendar
46+
}, 'v');
47+
48+
for(var i = 0; i < ccol.length; i++) {
49+
ccol[i] = ccol[i] === BADNUM ? NaN : ccol[i];
50+
}
51+
cdata.push(ccol);
52+
ldata.push(ax.type === 'log' ? Lib.simpleMap(ccol, ax.c2l) : ccol);
53+
}
4054

4155
for(i = 0; i < dimensions.length; i++) {
4256
dim = dimensions[i];
4357

4458
if(dim.visible) {
45-
var axId = trace._diag[i][0] || trace._diag[i][1];
46-
var ax = AxisIDs.getFromId(gd, axId);
47-
if(ax) {
48-
var ccol = makeCalcdata(ax, trace, dim);
49-
var lcol = ax.type === 'log' ? Lib.simpleMap(ccol, ax.c2l) : ccol;
50-
cdata.push(ccol);
51-
ldata.push(lcol);
59+
xa = AxisIDs.getFromId(gd, trace._diag[i][0]);
60+
ya = AxisIDs.getFromId(gd, trace._diag[i][1]);
61+
62+
if(xa) {
63+
makeCalcdata(xa, dim);
64+
if(ya && ya.type === 'category') {
65+
ya._categories = xa._categories.slice();
66+
}
67+
} else if(ya) {
68+
makeCalcdata(ya, dim);
69+
if(xa && xa.type === 'category') {
70+
xa._categories = ya._categories.slice();
71+
}
5272
}
5373
}
5474
}
@@ -63,8 +83,8 @@ function calc(gd, trace) {
6383
dim = dimensions[i];
6484

6585
if(dim.visible) {
66-
var xa = AxisIDs.getFromId(gd, trace._diag[i][0]) || {};
67-
var ya = AxisIDs.getFromId(gd, trace._diag[i][1]) || {};
86+
xa = AxisIDs.getFromId(gd, trace._diag[i][0]) || {};
87+
ya = AxisIDs.getFromId(gd, trace._diag[i][1]) || {};
6888

6989
// Reuse SVG scatter axis expansion routine.
7090
// For graphs with very large number of points and array marker.size,
@@ -91,20 +111,6 @@ function calc(gd, trace) {
91111
return [{x: false, y: false, t: stash, trace: trace}];
92112
}
93113

94-
function makeCalcdata(ax, trace, dim) {
95-
// call makeCalcdata with fake input
96-
var ccol = ax.makeCalcdata({
97-
v: dim.values,
98-
vcalendar: trace.calendar
99-
}, 'v');
100-
101-
for(var i = 0; i < ccol.length; i++) {
102-
ccol[i] = ccol[i] === BADNUM ? NaN : ccol[i];
103-
}
104-
105-
return ccol;
106-
}
107-
108114
function sceneUpdate(gd, stash) {
109115
var scene = stash._scene;
110116

0 commit comments

Comments
 (0)