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

Function setCoords

src/traces/funnelarea/plot.js:188–290  ·  view source on GitHub ↗
(cd)

Source from the content-addressed store, hash-verified

186}
187
188function setCoords(cd) {
189 if(!cd.length) return;
190
191 var cd0 = cd[0];
192 var trace = cd0.trace;
193
194 var aspectratio = trace.aspectratio;
195
196 var h = trace.baseratio;
197 if(h > 0.999) h = 0.999; // TODO: may handle this case separately
198 var h2 = Math.pow(h, 2);
199
200 var v1 = cd0.vTotal;
201 var v0 = v1 * h2 / (1 - h2);
202
203 var totalValues = v1;
204 var sumSteps = v0 / v1;
205
206 function calcPos() {
207 var q = Math.sqrt(sumSteps);
208 return {
209 x: q,
210 y: -q
211 };
212 }
213
214 function getPoint() {
215 var pos = calcPos();
216 return [pos.x, pos.y];
217 }
218
219 var p;
220 var allPoints = [];
221 allPoints.push(getPoint());
222
223 var i, cdi;
224 for(i = cd.length - 1; i > -1; i--) {
225 cdi = cd[i];
226 if(cdi.hidden) continue;
227
228 var step = cdi.v / totalValues;
229 sumSteps += step;
230
231 allPoints.push(getPoint());
232 }
233
234 var minY = Infinity;
235 var maxY = -Infinity;
236 for(i = 0; i < allPoints.length; i++) {
237 p = allPoints[i];
238 minY = Math.min(minY, p[1]);
239 maxY = Math.max(maxY, p[1]);
240 }
241
242 // center the shape
243 for(i = 0; i < allPoints.length; i++) {
244 allPoints[i][1] -= (maxY + minY) / 2;
245 }

Callers 1

plot.jsFile · 0.70

Calls 2

getPointFunction · 0.85
getBetweenFunction · 0.70

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…