stackOffsetDiverging function Stack offsets Stacks
Positive values are stacked above zero, negative values are stacked below zero, and zero values are stacked at zero.
final stack = Stack(…)..offset = stackOffsetDiverging;
Implementation
void stackOffsetDiverging(List<List<List<num>>> series, List<int> order) {
int i, n;
if (!((n = series.length) > 0)) return;
num dy, yp, yn;
List<num> d;
for (var j = 0, m = series[order[0]].length; j < m; ++j) {
yp = yn = 0;
for (i = 0; i < n; ++i) {
if ((dy = (d = series[order[i]][j])[1] - d[0]) > 0) {
d[0] = yp;
d[1] = yp += dy;
} else if (dy < 0) {
d[1] = yn;
d[0] = yn += dy;
} else {
d[0] = 0;
d[1] = dy;
}
}
}
}