Search code examples
c++qtplotqwt

Need fast c++ qt/qwt scatter plot


I have a huge array of 2D points (about 3 millions of pairs), which I need to render with reasonable speed in a Qt-based application.

I've tried using QGraphicsScene, but its very slow even on 400000 primitives, so I was looking into the qwt library instead.

It has a scatter plot example screenshot on its sourceforge page, which looks like exactly what I need, but I cannot find neither any kind of actual code that can be used for this data, nor an according API in qwt docs - it mentions only different types of curves.

So it would be good to get some pointers for scatter plot examples and some advice on its performance. Suggestions for other c++ qt-compatible plotting libraries which can cope with this amount of data are also welcome.


Solution

  • Scatter plot is contained in the "realtime" example: what you want is the IncrementalPlot class. I'd also suggest that drawing all the 3 million points isn't reasonable, since modern screens have only about 2 million pixels :) Thus it seems better to simplify the plot beforehand by merging the adjacent points into one with a threshold dependent on the zoom factor.