generateVisibleLabels method
- @override
override
Generates the visible axis labels.
Implementation
@override
void generateVisibleLabels() {
num tempInterval = _visibleRange.minimum;
String text;
final String minimum = tempInterval.toString();
final num maximumVisibleRange = _visibleRange.maximum;
num interval = _visibleRange.interval;
interval = interval.toString().split('.').length >= 2
? interval.toString().split('.')[1].length == 1 &&
interval.toString().split('.')[1] == '0'
? interval.floor()
: interval
: interval;
_visibleLabels = <AxisLabel>[];
for (; tempInterval <= maximumVisibleRange; tempInterval += interval) {
num minimumVisibleRange = tempInterval;
if (minimumVisibleRange <= maximumVisibleRange &&
minimumVisibleRange >= _visibleRange.minimum) {
final int fractionDigits = (minimum.split('.').length >= 2)
? minimum.split('.')[1].toString().length
: (minimumVisibleRange.toString().split('.').length >= 2)
? minimumVisibleRange.toString().split('.')[1].toString().length
: 0;
minimumVisibleRange =
num.tryParse(minimumVisibleRange.toStringAsFixed(fractionDigits));
if (minimumVisibleRange is double) {
final String str = minimumVisibleRange.toString();
final List<dynamic> list = str.split('.');
minimumVisibleRange =
double.parse(minimumVisibleRange.toStringAsFixed(3));
if (list[1] == '0' || list[1] == '00' || list[1] == '000')
minimumVisibleRange = minimumVisibleRange.round();
}
text = minimumVisibleRange.toString();
if (numberFormat != null) {
text = numberFormat.format(minimumVisibleRange);
}
if (labelFormat != null) {
text = labelFormat.replaceAll(RegExp('{value}'), text);
}
final Size labelSize = _measureText(text, labelStyle, labelRotation);
_visibleLabels
.add(AxisLabel(labelStyle, labelSize, text, minimumVisibleRange));
}
}
/// Get the maximum label of width and height in axis.
_calculateMaximumLabelSize(this, _chart);
}