Skip to content

Commit b08d780

Browse files
authored
Merge pull request #4969 from plotly/fix4966-median-sort
Fix median transform aggregation
2 parents 5c0179d + 62dae89 commit b08d780

File tree

2 files changed

+25
-1
lines changed

2 files changed

+25
-1
lines changed

src/transforms/aggregate.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -374,7 +374,7 @@ function getAggregateFunction(opts, conversions) {
374374
if(vi !== BADNUM) sortCalc.push(vi);
375375
}
376376
if(!sortCalc.length) return BADNUM;
377-
sortCalc.sort();
377+
sortCalc.sort(Lib.sorterAsc);
378378
var mid = (sortCalc.length - 1) / 2;
379379
return c2d((sortCalc[Math.floor(mid)] + sortCalc[Math.ceil(mid)]) / 2);
380380
};

test/jasmine/tests/transform_aggregate_test.js

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -360,4 +360,28 @@ describe('aggregate', function() {
360360
.catch(failTest)
361361
.then(done);
362362
});
363+
364+
it('use numeric sort function for median', function() {
365+
var subject = ['M', 'M', 'M'];
366+
var score = [2, 10, 11];
367+
368+
var data = [{
369+
type: 'scatter',
370+
x: subject,
371+
y: score,
372+
mode: 'markers',
373+
transforms: [{
374+
type: 'aggregate',
375+
groups: subject,
376+
aggregations: [
377+
{ target: 'y', func: 'median' },
378+
]
379+
}]
380+
}];
381+
382+
Plotly.newPlot(gd, data);
383+
384+
var traceOut = gd._fullData[0];
385+
expect(traceOut.y[0]).toBe(10);
386+
});
363387
});

0 commit comments

Comments
 (0)