auto static method

List<DataPoint> auto(
  1. List<DataPoint> data,
  2. int threshold, {
  3. SamplingStrategy? forceStrategy,
})

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);
  }
}