MCPcopy Index your code
hub / github.com/plotly/plotly.js / calc

Function calc

src/traces/scatter/calc.js:15–157  ·  view source on GitHub ↗
(gd, trace)

Source from the content-addressed store, hash-verified

13var calcSelection = require('./calc_selection');
14
15function calc(gd, trace) {
16 var fullLayout = gd._fullLayout;
17 var xa = trace._xA = Axes.getFromId(gd, trace.xaxis || 'x', 'x');
18 var ya = trace._yA = Axes.getFromId(gd, trace.yaxis || 'y', 'y');
19 var origX = xa.makeCalcdata(trace, 'x');
20 var origY = ya.makeCalcdata(trace, 'y');
21 var xObj = alignPeriod(trace, xa, 'x', origX);
22 var yObj = alignPeriod(trace, ya, 'y', origY);
23 var x = xObj.vals;
24 var y = yObj.vals;
25
26 var serieslen = trace._length;
27 var cd = new Array(serieslen);
28 var ids = trace.ids;
29 var stackGroupOpts = getStackOpts(trace, fullLayout, xa, ya);
30 var interpolateGaps = false;
31 var isV, i, j, k, interpolate, vali;
32
33 setFirstScatter(fullLayout, trace);
34
35 var xAttr = 'x';
36 var yAttr = 'y';
37 var posAttr;
38 if(stackGroupOpts) {
39 Lib.pushUnique(stackGroupOpts.traceIndices, trace.index);
40 isV = stackGroupOpts.orientation === 'v';
41
42 // size, like we use for bar
43 if(isV) {
44 yAttr = 's';
45 posAttr = 'x';
46 } else {
47 xAttr = 's';
48 posAttr = 'y';
49 }
50 interpolate = stackGroupOpts.stackgaps === 'interpolate';
51 } else {
52 var ppad = calcMarkerSize(trace, serieslen);
53 calcAxisExpansion(gd, trace, xa, ya, x, y, ppad);
54 }
55
56 var hasPeriodX = !!trace.xperiodalignment;
57 var hasPeriodY = !!trace.yperiodalignment;
58
59 for(i = 0; i < serieslen; i++) {
60 var cdi = cd[i] = {};
61 var xValid = isNumeric(x[i]);
62 var yValid = isNumeric(y[i]);
63 if(xValid && yValid) {
64 cdi[xAttr] = x[i];
65 cdi[yAttr] = y[i];
66
67 if(hasPeriodX) {
68 cdi.orig_x = origX[i]; // used by hover
69 cdi.xEnd = xObj.ends[i];
70 cdi.xStart = xObj.starts[i];
71 }
72 if(hasPeriodY) {

Callers

nothing calls this directly

Calls 6

getStackOptsFunction · 0.85
setFirstScatterFunction · 0.85
calcMarkerSizeFunction · 0.85
arraysToCalcdataFunction · 0.85
calcSelectionFunction · 0.85
calcAxisExpansionFunction · 0.70

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…