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

Function plotOne

src/traces/sunburst/plot.js:85–521  ·  view source on GitHub ↗
(gd, cd, element, transitionOpts)

Source from the content-addressed store, hash-verified

83};
84
85function plotOne(gd, cd, element, transitionOpts) {
86 var isStatic = gd._context.staticPlot;
87
88 var fullLayout = gd._fullLayout;
89 var hasTransition = !fullLayout.uniformtext.mode && helpers.hasTransition(transitionOpts);
90
91 var gTrace = d3.select(element);
92 var slices = gTrace.selectAll('g.slice');
93
94 var cd0 = cd[0];
95 var trace = cd0.trace;
96 var hierarchy = cd0.hierarchy;
97 var entry = helpers.findEntryWithLevel(hierarchy, trace.level);
98 var maxDepth = helpers.getMaxDepth(trace);
99
100 var gs = fullLayout._size;
101 var domain = trace.domain;
102 var vpw = gs.w * (domain.x[1] - domain.x[0]);
103 var vph = gs.h * (domain.y[1] - domain.y[0]);
104 var rMax = 0.5 * Math.min(vpw, vph);
105 var cx = (cd0.cx = gs.l + (gs.w * (domain.x[1] + domain.x[0])) / 2);
106 var cy = (cd0.cy = gs.t + gs.h * (1 - domain.y[0]) - vph / 2);
107
108 if (!entry) {
109 return slices.remove();
110 }
111
112 // previous root 'pt' (can be empty)
113 var prevEntry = null;
114 // stash of 'previous' position data used by tweening functions
115 var prevLookup = {};
116
117 if (hasTransition) {
118 // Important: do this before binding new sliceData!
119 slices.each(function (pt) {
120 prevLookup[helpers.getPtId(pt)] = {
121 rpx0: pt.rpx0,
122 rpx1: pt.rpx1,
123 x0: pt.x0,
124 x1: pt.x1,
125 transform: pt.transform
126 };
127
128 if (!prevEntry && helpers.isEntry(pt)) {
129 prevEntry = pt;
130 }
131 });
132 }
133
134 // N.B. slice data isn't the calcdata,
135 // grab corresponding calcdata item in sliceData[i].data.data
136 var sliceData = partition(entry).descendants();
137
138 var maxHeight = entry.height + 1;
139 var yOffset = 0;
140 var cutoff = maxDepth;
141 // N.B. handle multiple-root special case
142 if (cd0.hasMultipleRoots && helpers.isHierarchyRoot(entry)) {

Callers 1

plot.jsFile · 0.70

Calls 12

partitionFunction · 0.85
pathSliceFunction · 0.85
y2rpxFunction · 0.85
rx2pxFunction · 0.85
transformInsideTextFunction · 0.85
getTargetXFunction · 0.85
getTargetYFunction · 0.85
strTransformFunction · 0.70

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…