histogramData method
Generates histogram data.
Implementation
Map<String, dynamic> histogramData({
int sampleCount = 1000,
int binCount = 20,
double mean = 50,
double stdDev = 15,
}) {
final samples = _random.normalList(sampleCount, mean, stdDev);
final min = samples.reduce((a, b) => a < b ? a : b);
final max = samples.reduce((a, b) => a > b ? a : b);
final binWidth = (max - min) / binCount;
final bins = List.filled(binCount, 0);
for (final sample in samples) {
final binIndex =
((sample - min) / binWidth).floor().clamp(0, binCount - 1);
bins[binIndex]++;
}
return {
'bins': List.generate(
binCount,
(i) => {
'x0': min + i * binWidth,
'x1': min + (i + 1) * binWidth,
'count': bins[i],
'frequency': bins[i] / sampleCount,
}),
'samples': samples,
'mean': mean,
'stdDev': stdDev,
};
}