axisBottom function
void
axisBottom(})
Implementation
void axisBottom(
Canvas canvas, {
required Scale xScale,
required Offset position,
required AxisTheme theme,
Function(dynamic)? formatLabel,
}) {
// Long Axis
canvas.drawLine(position + Offset(xScale.apply(xScale.dMin), 0),
position + Offset(xScale.apply(xScale.dMax), 0), theme.axisLine);
// Strt and End Marks
canvas.drawLine(position + Offset(xScale.apply(xScale.dMin), 0),
position + Offset(xScale.apply(xScale.dMin), 10), theme.tickLine);
canvas.drawLine(position + Offset(xScale.apply(xScale.dMax), 0),
position + Offset(xScale.apply(xScale.dMax), 10), theme.tickLine);
final days = xScale.getRange(7);
// Day marks
for (int i = 0; i < days.length; i++) {
var day = days[i];
final dayWidth = (i == days.length - 1
? xScale.apply(xScale.dMax as DateTime)
: xScale.apply(days[i + 1])) -
xScale.apply(day);
canvas.drawLine(position + Offset(xScale.apply(day), 0),
position + Offset(xScale.apply(day), 10), theme.tickLine);
final mid = xScale.apply(day) + dayWidth / 2;
final c = position + Offset(mid, 16);
drawText(
canvas,
mid: c,
text: formatLabel?.call(day) ?? day.toString(),
style: theme.labelStyle,
maxWidth: dayWidth,
);
}
}