buildGraph method
Implementation
Widget buildGraph(BuildContext context) {
final processedData = processNumberData(variable, timeWindow, referenceTime);
final List<ChartData> chartData = processedData.chartData;
final DateTimeIntervalType dateIntervalFormat = processedData.dateIntervalFormat;
final DateFormat dateFormat = processedData.dateFormat;
final String labelFormat = processedData.labelFormat;
final double interval = processedData.interval;
final bool showAxis = processedData.showAxis;
final double maxY = processedData.maxY;
final double minY = processedData.minY;
final DateTime minX = processedData.minX;
final DateTime maxX = processedData.maxX;
return SfCartesianChart(
enableAxisAnimation: false,
primaryXAxis: DateTimeAxis(
interval: interval,
minimum: minX, // ✅ Dynamically set min timestamp
maximum: maxX, // ✅ Dynamically set max timestamp
intervalType: dateIntervalFormat,
edgeLabelPlacement: EdgeLabelPlacement.shift,
labelStyle: const TextStyle(fontSize: 8),
majorTickLines: const MajorTickLines(size: 4),
axisBorderType: AxisBorderType.withoutTopAndBottom,
axisLine: AxisLine(dashArray: [3]),
majorGridLines: const MajorGridLines(width: 0),
placeLabelsNearAxisLine: true,
isVisible: showAxis,
labelFormat: labelFormat,
dateFormat: dateFormat,
),
primaryYAxis: NumericAxis(
isVisible: false,
maximum: maxY * 1.1,
minimum: minY,
plotOffsetEnd: maxY * 0.02,
majorGridLines: const MajorGridLines(width: 0),
),
plotAreaBorderWidth: 0,
margin: EdgeInsets.zero,
series: [buildSeries(context, chartData)],
);
}