stackOffsetExpand function Stack offsets Stacks

void stackOffsetExpand(
  1. List<List<List<num>>> series,
  2. List<int> order
)

Applies a zero baseline and normalizes the values for each point such that the topline is always one.

final stack = Stack(…)..offset = stackOffsetExpand;

Implementation

void stackOffsetExpand(List<List<List<num>>> series, List<int> order) {
  int i, n;
  if (!((n = series.length) > 0)) return;
  num y0, y;
  for (var j = 0, m = series[0].length; j < m; ++j) {
    for (y = i = 0; i < n; ++i) {
      y0 = series[i][j][1];
      if (y0.isFinite) y += y0;
    }
    if (y != 0) {
      for (i = 0; i < n; ++i) {
        series[i][j][1] /= y;
      }
    }
  }
  stackOffsetNone(series, order);
}