computeStackedValues static method
Compute cumulative (stacked) values per category index.
Returns result[seriesIdx][dataIdx] = stacked value.
Implementation
static List<List<double>> computeStackedValues(List<Series> series) {
if (series.isEmpty) return const [];
int len = 0;
for (final s in series) {
final l = s.data?.length ?? 0;
if (l > len) len = l;
}
final List<double> posAccum = List.filled(len, 0.0);
final List<double> negAccum = List.filled(len, 0.0);
final List<List<double>> result = [];
for (final s in series) {
final data = s.data;
final row = List<double>.filled(len, 0.0);
for (int i = 0; i < len; i++) {
final v =
ChartDataValueReader.yValueOrNull(
data != null && i < data.length ? data[i] : null,
) ??
0;
if (v >= 0) {
row[i] = posAccum[i] + v;
posAccum[i] += v;
} else {
row[i] = negAccum[i] + v;
negAccum[i] += v;
}
}
result.add(row);
}
return result;
}