We use cookies to give you the best experience on our website. If you continue to browse, then you agree to our privacy policy and cookie policy. Image for the cookie policy date

How many data points to get best performance?


I have 4 y aixses, 3600 data points per axis, turns out it's running quite slow, so, how to make it smooth and have best performance?

3 Replies 1 reply marked as answer

KK Konduru Keerthi Konduru Ravichandra Raju Syncfusion Team January 19, 2023 01:10 PM UTC

Hi Zhu,

Greetings from Syncfusion,

The following are the key points that can be used to boost the performance of the chart when there is a need to plot high volume data.

  1. Load and store the required data points in the initState method itself, and then set the data points to the chart series.

  2. Use NumericAxis or DateTimeAxis instead of CategoryAxis.

  3. When there are large number of points to load in line series, you can use FastLineSeries series instead of LineSeries.

  4. Instead of enabling data markers and labels when there are large number of data points, you can use Trackball to view the point information.

  5. Set series animationDuration as 0 to disable the animation while loading large number of data points.

  6. Use updateDataSource method while updating dynamic data points instead of calling setState. For more details refer ug - https://help.syncfusion.com/flutter/cartesian-charts/methods#updatedatasource.

  7. Use On-demand loading while rendering large data points, it can be used to load more data to the chart when the visible range reaches the end on dragging in the chart. https://help.syncfusion.com/flutter/cartesian-charts/on-demand-loading

Code Snippet:

       series: <ChartSeries>[

            FastLineSeries<ChartSampleData, num>(

              dataSource: dataSource1.chartData,

              xValueMapper: (ChartSampleData data, _) => data.xValue,

              yValueMapper: (ChartSampleData data, _) => data.yValue1,

              color: Colors.red,


            FastLineSeries<ChartSampleData, num>(

              dataSource: dataSource2.chartData,

              xValueMapper: (ChartSampleData data, _) => data.xValue,

              yValueMapper: (ChartSampleData data, _) => data.yValue2,

              color: Colors.yellow,


            FastLineSeries<ChartSampleData, num>(

              dataSource: dataSource3.chartData,

              xValueMapper: (ChartSampleData data, _) => data.xValue,

              yValueMapper: (ChartSampleData data, _) => data.yValue3,

              color: Colors.green,


            FastLineSeries<ChartSampleData, num>(

              dataSource: dataSource4.chartData,

              xValueMapper: (ChartSampleData data, _) => data.xValue,

              yValueMapper: (ChartSampleData data, _) => data.yValue4,

              color: Colors.blue,





You can load more than 1L data points for fast line series and more than 5k data points for other type series. We have prepared sample with 4 fast line series and each series have 3600 data points and it’s working fine at our end. We have shared a sample for your reference.


Lokesh Palani.

Attachment: chart_180061_85ff512e.zip

Marked as answer

ZH Zhu January 20, 2023 02:15 PM UTC

Hi,  Lokesh Palani,

Thank you and your team so much for the detailed helpful advices  and the similar code example provided.

I'll test them out.

Best Regards,


YG Yuvaraj Gajaraj Syncfusion Team January 23, 2023 08:51 AM UTC

Hi Zhu,

Most Welcome. Kindly get back to us if you have further queries. We are always happy to assist you.



Live Chat Icon For mobile
Up arrow icon