Skip to content

Commit bf02101

Browse files
committed
parcoords - do not loop over data in default step - move this step to plot - use trace._length to find extremes
1 parent f373a88 commit bf02101

File tree

2 files changed

+19
-16
lines changed

2 files changed

+19
-16
lines changed

src/traces/parcoords/defaults.js

-13
Original file line numberDiff line numberDiff line change
@@ -55,19 +55,6 @@ function dimensionDefaults(dimensionIn, dimensionOut, parentOut, opts) {
5555
coerce('ticktext');
5656
coerce('tickformat');
5757
var range = coerce('range');
58-
if(!range) {
59-
var max = -Infinity;
60-
var min = Infinity;
61-
for(var i = 0; i < values.length; i++) {
62-
var v = values[i];
63-
if(isFinite(v)) {
64-
if(max < v) max = v;
65-
if(min > v) min = v;
66-
}
67-
}
68-
69-
range = [min, max];
70-
}
7158

7259
dimensionOut._ax = {
7360
_id: 'y',

src/traces/parcoords/parcoords.js

+19-3
Original file line numberDiff line numberDiff line change
@@ -380,16 +380,32 @@ function updatePanelLayout(yAxis, vm) {
380380
function calcAllTicks(cd) {
381381
for(var i = 0; i < cd.length; i++) {
382382
for(var j = 0; j < cd[i].length; j++) {
383-
var dimensions = cd[i][j].trace.dimensions;
383+
var trace = cd[i][j].trace;
384+
var len = trace._length;
385+
var dimensions = trace.dimensions;
386+
384387
for(var k = 0; k < dimensions.length; k++) {
388+
var values = dimensions[k].values;
385389
var dim = dimensions[k]._ax;
386390

387391
if(dim) {
392+
if(!dim.range) {
393+
var max = -Infinity;
394+
var min = Infinity;
395+
for(var q = 0; q < len; q++) {
396+
var v = values[q];
397+
if(isFinite(v)) {
398+
if(max < v) max = v;
399+
if(min > v) min = v;
400+
}
401+
}
402+
dim.range = [min, max];
403+
}
404+
388405
if(!dim.dtick) dim.dtick = 0.01 * Math.abs(dim.range[1] - dim.range[0]);
389-
dim.tickformat = dimensions[k].tickformat;
390406

407+
dim.tickformat = dimensions[k].tickformat;
391408
Axes.calcTicks(dim);
392-
393409
dim.cleanRange();
394410
}
395411
}

0 commit comments

Comments
 (0)