auto static method
Automatically samples data to threshold points.
Strategy selection:
- ≤ 5 000 pts → LTTB (best visual accuracy)
- ≤ 50 000 pts → MinMax (fast, keeps peaks)
-
50 000 pts → Nth-point (fastest)
Implementation
static List<DataPoint> auto(
List<DataPoint> data,
int threshold, {
SamplingStrategy? forceStrategy,
}) {
final finiteData = _finiteDataPoints(data);
if (finiteData.length <= threshold || threshold <= 2) {
return _sampleEdgePoints(finiteData, threshold);
}
final strategy = DoubleListSampler.resolveStrategyForLength(
finiteData.length,
forceStrategy: forceStrategy,
);
switch (strategy) {
case SamplingStrategy.lttb:
return LTTBSampler._sampleFinite(finiteData, threshold);
case SamplingStrategy.minMax:
return MinMaxSampler._sampleFinite(finiteData, threshold);
case SamplingStrategy.nth:
return NthPointSampler._sampleFinite(finiteData, threshold);
}
}