final monitoringData = [
{'hour': '00:00', 'service': 'API Gateway', 'responseTime': 45},
{'hour': '00:00', 'service': 'Auth Service', 'responseTime': 32},
{'hour': '00:00', 'service': 'Database', 'responseTime': 28},
{'hour': '06:00', 'service': 'API Gateway', 'responseTime': 120},
{'hour': '06:00', 'service': 'Auth Service', 'responseTime': 85},
{'hour': '06:00', 'service': 'Database', 'responseTime': 95},
{'hour': '12:00', 'service': 'API Gateway', 'responseTime': 200},
{'hour': '12:00', 'service': 'Auth Service', 'responseTime': 150},
{'hour': '12:00', 'service': 'Database', 'responseTime': 180},
{'hour': '18:00', 'service': 'API Gateway', 'responseTime': 180},
{'hour': '18:00', 'service': 'Auth Service', 'responseTime': 130},
{'hour': '18:00', 'service': 'Database', 'responseTime': 160},
];
CristalyseChart()
.data(monitoringData)
.mapping(
x: 'hour',
y: 'service',
color: 'responseTime',
)
.geomHeatMap(
cellWidth: 70,
cellHeight: 45,
showLabels: true,
showValues: true,
minValue: 0,
maxValue: 250,
nullValueColor: Colors.grey.shade300,
textStyle: TextStyle(
fontSize: 12,
fontWeight: FontWeight.w600,
color: Colors.white,
),
)
.scaleXOrdinal()
.scaleYOrdinal()
.scaleColorContinuous(
range: [Colors.green.shade400, Colors.yellow, Colors.red.shade600],
)
.theme(ChartTheme.darkTheme())
.build()