plotly.js
Version:
The open source javascript graphing library that powers plotly
43 lines (34 loc) • 1.02 kB
JavaScript
var Lib = require('../../lib');
var Axes = require('../../plots/cartesian/axes');
var alignPeriod = require('../../plots/cartesian/align_period');
var calcCommon = require('../ohlc/calc').calcCommon;
module.exports = function(gd, trace) {
var fullLayout = gd._fullLayout;
var xa = Axes.getFromId(gd, trace.xaxis);
var ya = Axes.getFromId(gd, trace.yaxis);
var origX = xa.makeCalcdata(trace, 'x');
var x = alignPeriod(trace, xa, 'x', origX).vals;
var cd = calcCommon(gd, trace, origX, x, ya, ptFunc);
if(cd.length) {
Lib.extendFlat(cd[0].t, {
num: fullLayout._numBoxes,
dPos: Lib.distinctVals(x).minDiff / 2,
posLetter: 'x',
valLetter: 'y',
});
fullLayout._numBoxes++;
return cd;
} else {
return [{t: {empty: true}}];
}
};
function ptFunc(o, h, l, c) {
return {
min: l,
q1: Math.min(o, c),
med: c,
q3: Math.max(o, c),
max: h,
};
}
;