Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Increasing performance of graphical charts with high data rates

I would like to create line chart with thousands of points that completely refreshes at least 10 times per second. What are some techniques for increasing the performance of charts with a lot of data to display?

One idea I've had is to change the number of draw calls from being based on the number of data points to being based on the number of pixels available. I could divide the data into bins along the X axis and draw a vertical line between the min and max for each bin.

like image 309
sourcenouveau Avatar asked May 18 '11 13:05

sourcenouveau


People also ask

Which graph is good for showing large amounts of data?

Scatter plots are best for showing distribution in large data sets.

Which is the best graphical form to display the trend observed in the data?

A line chart is, therefore, the best chart to show trends over time. It shows trends and data variables clearly. Besides, a line graph assists readers with making predictions for the future. However, for a data set comparison being useful, you must use the same scale on both axes.

Which type of chart will be most effective?

Line charts are the most effective chart for displaying time-series data. They can handle a ton of data points and multiple data series, and everyone knows how to read them.


1 Answers

There is a good article about charting performance over on the Visiblox blog, here.

You might not be using this particular charting library in your application, but the main points of the article will still apply. Its all about carefully selecting what you need to show when. The main points of the article are:

  • Consider carefully the type of series to use
  • Where possible set explicit ranges on the axes
  • Remove points that are offscreen from the DataSeries
  • Remove data generation from the UI thread
  • Reduce or disable animations
  • Think carefully about the amount of data and the frequency of updates

There's also a slightly less helpful article on the MSDN blog, but it should help to outline some of the key areas when improving chart performance.

like image 125
Chris Grant Avatar answered Jan 03 '23 05:01

Chris Grant