Is there any 'out-of-the-box' 2D/3D plotting library for C++?
C++GraphWxwidgetsPlotC++ Problem Overview
I looked at the different options for plotting functions (or other types of graphs) in an interactive window. I mostly use wxWidgets but I'd be open to any other "interfaces".
Looking at what is available, here is what I've found:
wxPlot: Not updated since 2006. But it would be a good candidate if it was...
wxMathPlot: Very new, not mature, few features (still active?)
libgraph: Outdated, not rebust, 2D only and outputs images only.
koolplot: Too basic, no control over the created window.
EasyBMP: Very basic, only images output.
plotutils: Command line only.
plplot: C and C++ API are barely maintained. It is in fact on this that wxPlot is based. Could be a could candidate also if C and C++ interface we're updated.
Any comments? Ideas?
Thanks!
C++ Solutions
Solution 1 - C++
Even though this thread is old but gold. QCustomPlot is very recommendable as well to complement this list.
Solution 2 - C++
MathGL have many plot types, C/Fortran interface and basic data analysis
Solution 3 - C++
I'm all about ROOT for these needs. Pretty heavy if you don't need all the analysis support, though.
Solution 4 - C++
You have Qwt which is mature. There is a 3D version lurking somewhere. However, I have never been satisfied with the aesthetic result.
It may be worth waiting for Qt3D to come out to write something better yourself easily.
Solution 5 - C++
I programmatically provide required input files to GNUPlot executable and invoke it using system()
function. It is suitable to my situation since I only want to visualize my data during research. But if you want the plotting functionality integrated into your executable file, maybe this is not for you :)
Solution 6 - C++
u can use DISLIN
it is quite neat!
Solution 7 - C++
Might wxChart be an option? I have not used it myself however and it looks like it hasnt been updated for a while.
Solution 8 - C++
Just an idea: Use Python as embeddable scripting language to plot your graphs. Python has a plethora of plotting libraries.
Solution 9 - C++
I found the game library Allegro easy to use back in the day. Might be worth a look.
Solution 10 - C++
We use an ancient version of ComponentOne Chart.
Solution 11 - C++
AntiGrain Geometry (AGG). http://www.antigrain.com/. Its an opensource 2D vector graphics library. Its a standalone library with no additional dependencies. Has good documentation. Python plotting library matplotlib uses AGG as one of backends.
Solution 12 - C++
Have a look at wxArt2d it is a complete framework for 2d editing and plotting. See the screenshots for more examples.
Some interesting features:
- Reading and writing SVG and CVG
- Several views of the same document
- Changes are updated when idle
- Optimized drawing of 2d objects
Solution 13 - C++
Hey! I'm the developer of wxMathPlot! The project is active: I just took a long time to get a new release, because the code needed a partial rewriting to introduce new features. Take a look to the new 0.1.0 release: it is a great improvement from old versions. Anyway, it doesn't provide 3D (even if I always thinking about it...).
Solution 14 - C++
OpenGL. It WILL be hard and possibly rewriting the wheel, though. Keep in mind that OpenGL is a general 3D library, and not a specific plot library, but you can implement plotting based on it.