LTL  2.0.x
Files | Classes

Files

file  gnuplot.h
 

Classes

class  ltl::Gnuplot
 

Detailed Description

Simple interface to call gnuplot and send MArray and FVector objects. An instance of a Gnuplot class encapsulates a pipe into gnuplot's stdin. It exports a stream interface to the user, so that any gnuplot command can be sent via operator<<. For convenience, functions handling the loops over elements and the necessary formatting to plot elements of 1-D MArray against index number, two 1-D MArray against each other, 2-D MArray surfaces, and elements of any stl-iterator compatible container are provided.

The follwing example code should be self-explanatory:

MArray<float,1> A;
Gnuplot gp; // start a gnuplot session and open pipe
Gnuplot gp ("gnuplot-cmd"); // alternative command string
// plot elements of A against index number:
gp << "plot '-' with lines\n";
gp.send (A);
MArray<float,1> X, Y;
// add a plot of Y vs. X to previous plot
gp << "replot '-' with points\n";
gp.send (X,Y);
MArray<float,2> S;
// a surface plot of 2-D MArray S
gp << "splot '-' with lines\n";
gp.send (S);
std::vector<float> v;
float *f;
// plot an iterator range
gp << "plot '-' with points\n";
gp.send_iter (v.begin(), v.end());
gp << "replot '-' with points\n";
gp.send_iter (f, f+10);
double mx, my;
int mb;
gp.getMouse(mx, my, mb);