Index: packages/charted/lib/core/scales/linear_scale.dart |
diff --git a/packages/charted/lib/core/scales/linear_scale.dart b/packages/charted/lib/core/scales/linear_scale.dart |
index a0de8fb6c4c980259d4bd58807f1bf641a355410..4c983dce7005e11152a5e15ebcad72011c9b12d3 100644 |
--- a/packages/charted/lib/core/scales/linear_scale.dart |
+++ b/packages/charted/lib/core/scales/linear_scale.dart |
@@ -40,15 +40,15 @@ class LinearScale implements Scale { |
_domain, ScaleUtils.niceStep(_linearTickRange().step)); |
} |
- Function linear = math.min(_domain.length, _range.length) > 2 ? |
- ScaleUtils.polylinearScale : ScaleUtils.bilinearScale; |
+ Function linear = math.min(_domain.length, _range.length) > 2 |
+ ? ScaleUtils.polylinearScale |
+ : ScaleUtils.bilinearScale; |
Function uninterpolator = clamp ? uninterpolateClamp : uninterpolateNumber; |
InterpolatorGenerator interpolator = |
_rounded ? createRoundedNumberInterpolator : createNumberInterpolator; |
- _invert = |
- linear(_range, _domain, uninterpolator, createNumberInterpolator); |
+ _invert = linear(_range, _domain, uninterpolator, createNumberInterpolator); |
_scale = linear(_domain, _range, uninterpolator, interpolator); |
} |
@@ -135,19 +135,19 @@ class LinearScale implements Scale { |
if (extent == null) { |
extent = ScaleUtils.extent(_domain); |
} |
- var span = extent.max - extent.min, |
- step = |
- math.pow(10, (math.log(span / _ticksCount) / math.LN10).floor()), |
- err = _ticksCount / span * step; |
+ var span = extent.max - extent.min; |
+ if (span == 0) { |
+ span = 1.0; // [span / _ticksCount] should never be equal zero. |
+ } |
+ var step = math.pow(10, (math.log(span / _ticksCount) / math.LN10).floor()); |
+ var err = _ticksCount / span * step; |
// Filter ticks to get closer to the desired count. |
if (err <= .15) { |
step *= 10; |
- } |
- else if (err <= .35) { |
+ } else if (err <= .35) { |
step *= 5; |
- } |
- else if (err <= .75) { |
+ } else if (err <= .75) { |
step *= 2; |
} |