import 'package:charts_flutter/flutter.dart'; import 'package:flutter/material.dart'; class GaugeChart extends StatelessWidget { final List> seriesList; final bool animate; GaugeChart(this.seriesList, {this.animate = false}); /// Creates a [PieChart] with sample data and no transition. factory GaugeChart.withSampleData() { return new GaugeChart( _createSampleData(), // Disable animations for image tests. animate: false, ); } @override Widget build(BuildContext context) { return PieChart( seriesList, animate: animate, defaultRenderer: ArcRendererConfig(arcRendererDecorators: [ArcLabelDecorator(labelPosition: ArcLabelPosition.auto)]), //ArcRendererConfig(arcWidth: 10), ); //); } static List> _createSampleData() { final data = [ GaugeSegment('Low', 75, MaterialPalette.blue.shadeDefault), GaugeSegment('Acceptable', 100, MaterialPalette.blue.shadeDefault), GaugeSegment('High', 50, MaterialPalette.blue.shadeDefault), GaugeSegment('Highly Unusual', 55, MaterialPalette.blue.shadeDefault), ]; return [ Series( id: 'Segments', domainFn: (GaugeSegment segment, _) => segment.segment, measureFn: (GaugeSegment segment, _) => segment.size, data: data, ) ]; } } /// Sample data type. class GaugeSegment { final String segment; final int size; final color; GaugeSegment(this.segment, this.size, this.color); }