2019-07-18 12:05:09 +01:00
/// Timeseries chart example
import ' package:charts_flutter/flutter.dart ' as charts ;
import ' package:flutter/material.dart ' ;
class SimpleTimeSeriesChart extends StatelessWidget {
SimpleTimeSeriesChart ( this . seriesList , { this . animate } ) ;
/// Creates a [TimeSeriesChart] with sample data and no transition.
factory SimpleTimeSeriesChart . withSampleData ( ) {
return new SimpleTimeSeriesChart (
_createSampleData ( ) ,
// Disable animations for image tests.
animate: true ,
) ;
}
2019-08-21 14:53:52 +01:00
final List < charts . Series > seriesList ;
final bool animate ;
2019-07-18 12:05:09 +01:00
@ override
Widget build ( BuildContext context ) {
return new charts . TimeSeriesChart (
seriesList ,
animate: animate ,
// Optionally pass in a [DateTimeFactory] used by the chart. The factory
// should create the same type of [DateTime] as the data provided. If none
// specified, the default creates local date time.
dateTimeFactory: const charts . LocalDateTimeFactory ( ) ,
) ;
}
/// Create one series with sample hard coded data.
static List < charts . Series < TimeSeriesSales , DateTime > > _createSampleData ( ) {
final data = [
new TimeSeriesSales ( new DateTime ( 2017 , 9 , 19 ) , 5 ) ,
new TimeSeriesSales ( new DateTime ( 2017 , 9 , 26 ) , 25 ) ,
new TimeSeriesSales ( new DateTime ( 2017 , 10 , 3 ) , 100 ) ,
new TimeSeriesSales ( new DateTime ( 2017 , 10 , 10 ) , 75 ) ,
] ;
return [
new charts . Series < TimeSeriesSales , DateTime > (
id: ' Sales ' ,
colorFn: ( _ , __ ) = > charts . MaterialPalette . blue . shadeDefault ,
domainFn: ( TimeSeriesSales sales , _ ) = > sales . time ,
measureFn: ( TimeSeriesSales sales , _ ) = > sales . sales ,
data: data ,
)
] ;
}
}
/// Sample time series data type.
class TimeSeriesSales {
2019-08-21 14:53:52 +01:00
TimeSeriesSales ( this . time , this . sales ) ;
2019-07-18 12:05:09 +01:00
final DateTime time ;
final int sales ;
2019-08-21 14:53:52 +01:00
}