DiscreteScaleConv<V, SP extends DiscreteScale<V>> constructor
DiscreteScaleConv<V, SP extends DiscreteScale<V>>(
- SP spec,
- List<Tuple> tuples,
- 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;
}