views:

3110

answers:

10

Hello all,

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!

+1  A: 

Might wxChart be an option? I have not used it myself however and it looks like it hasnt been updated for a while.

SteveL
A: 

Just an idea: Use Python as embeddable scripting language to plot your graphs. Python has a plethora of plotting libraries.

J.F. Sebastian
If you don't mind embedding a Python interpreter you get a whole lot of other benefits from having a scripting lanaguage in your application, plus access to the sort of libraries you've linked to. +1
ConcernedOfTunbridgeWells
A: 

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.

luiscubal
A: 

I found the game library Allegro easy to use back in the day. Might be worth a look.

Kev
A: 

We use an ancient version of ComponentOne Chart.

John Dibling
A: 

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.

A: 

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
Seika
+1  A: 

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...).

is it able to plot in "real time"? (or near real time)
Tim
To be clear - I want to be able to update from a data source and draw as new points arrive.
Tim
A: 

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 :)

m3rLinEz
A: 

I'm all about ROOT for these needs. Pretty heavy if you don't need all the analysis support, though.

dmckee