2019-07-17 12:31:28 +01:00
/// Bar chart example
import ' package:flutter/material.dart ' ;
import ' package:charts_flutter/flutter.dart ' as charts ;
class GroupedBarChart extends StatelessWidget {
GroupedBarChart ( this . seriesList , { this . animate } ) ;
factory GroupedBarChart . withSampleData ( ) {
return new GroupedBarChart (
_createSampleData ( ) ,
// Disable animations for image tests.
animate: false ,
) ;
}
2019-08-21 14:53:52 +01:00
final List < charts . Series > seriesList ;
final bool animate ;
2019-07-17 12:31:28 +01:00
@ override
Widget build ( BuildContext context ) {
return new charts . BarChart (
seriesList ,
animate: animate ,
barGroupingType: charts . BarGroupingType . grouped ,
) ;
}
/// Create series list with multiple series
static List < charts . Series < OrdinalSales , String > > _createSampleData ( ) {
final desktopSalesData = [
new OrdinalSales ( ' 2014 ' , 5 ) ,
new OrdinalSales ( ' 2015 ' , 25 ) ,
new OrdinalSales ( ' 2016 ' , 100 ) ,
new OrdinalSales ( ' 2017 ' , 75 ) ,
] ;
final tabletSalesData = [
new OrdinalSales ( ' 2014 ' , 25 ) ,
new OrdinalSales ( ' 2015 ' , 50 ) ,
new OrdinalSales ( ' 2016 ' , 10 ) ,
new OrdinalSales ( ' 2017 ' , 20 ) ,
] ;
final mobileSalesData = [
new OrdinalSales ( ' 2014 ' , 10 ) ,
new OrdinalSales ( ' 2015 ' , 15 ) ,
new OrdinalSales ( ' 2016 ' , 50 ) ,
new OrdinalSales ( ' 2017 ' , 45 ) ,
] ;
return [
new charts . Series < OrdinalSales , String > (
id: ' Desktop ' ,
domainFn: ( OrdinalSales sales , _ ) = > sales . year ,
measureFn: ( OrdinalSales sales , _ ) = > sales . sales ,
data: desktopSalesData ,
) ,
new charts . Series < OrdinalSales , String > (
id: ' Tablet ' ,
domainFn: ( OrdinalSales sales , _ ) = > sales . year ,
measureFn: ( OrdinalSales sales , _ ) = > sales . sales ,
data: tabletSalesData ,
) ,
new charts . Series < OrdinalSales , String > (
id: ' Mobile ' ,
domainFn: ( OrdinalSales sales , _ ) = > sales . year ,
measureFn: ( OrdinalSales sales , _ ) = > sales . sales ,
data: mobileSalesData ,
) ,
] ;
}
}
/// Sample ordinal data type.
class OrdinalSales {
2019-08-21 14:53:52 +01:00
OrdinalSales ( this . year , this . sales ) ;
2019-07-17 12:31:28 +01:00
final String year ;
final int sales ;
2019-08-21 14:53:52 +01:00
}