DiscreteScaleConv<V, SP extends DiscreteScale<V>> constructor

DiscreteScaleConv<V, SP extends DiscreteScale<V>>(
  1. SP spec,
  2. List<Tuple> tuples,
  3. String variable
)

Implementation

DiscreteScaleConv(
  SP spec,
  List<Tuple> tuples,
  String variable,
) {
  if (spec.values != null) {
    values = spec.values!;
  } else {
    final candidates = <V>{};
    for (var tuple in tuples) {
      candidates.add(tuple[variable]);
    }
    values = candidates.toList();
  }

  if (spec.ticks != null) {
    ticks = spec.ticks!;
  } else if (spec.tickCount == null || spec.tickCount! >= values.length) {
    ticks = values;
  } else if (spec.tickCount! <= 0) {
    ticks = [];
  } else {
    final step = (values.length / spec.tickCount!).ceil();
    final tail = (values.length - 1) % step;
    int index = tail ~/ 2;
    ticks = [];
    while (index < values.length) {
      ticks.add(values[index]);
      index += step;
    }
  }

  title = spec.title ?? variable;
  formatter = spec.formatter ?? defaultFormatter;
  inflate = spec.inflate ?? false;
  band = inflate ? 1 / (values.length - 1) : 1 / values.length;
  align = inflate ? 0 : spec.align ?? 0.5;
}