Difference between revisions of "Gnuplot in cpp"

From AIRWiki
Jump to: navigation, search
Line 25: Line 25:
 
         // END GNUPLOT INITIALIZATION
 
         // END GNUPLOT INITIALIZATION
 
         try {
 
         try {
 
 
             gp.remove_tmpfiles(); // it is always better to do it
 
             gp.remove_tmpfiles(); // it is always better to do it
 
             gp.reset_plot(); // delete the plot (like Matlab figure())
 
             gp.reset_plot(); // delete the plot (like Matlab figure())

Revision as of 12:54, 4 November 2009

How to plot using gnuplot in your C/C++ programs


This is a little guide that shows you how you can add a plotting function in your C/C++ program. This approach has some advantages and disadvantages:

PROS - You don't need to write on files or similar and plot in a second moment through a Matlab/Octave/Gnuplot script

CONTRAS - You don't have all the potentiality of Matlab/Octave plotting even if you can program your plotting utilities

HOW TO


  1. You should download gnuplot-cpp library. I suggest you to use my version LINKHERE because the official one gnuplot-cpphas problems, (see below).
  2. To use the plotting library you should only need to include: "gnuplot-cpp/gnuplot_i.hpp"
  3. A code snippet is here presented that simply plots a 2D set of points:

   if(ANIMATIONON){
        // GNUPLOT
        // GNUPLOT INITIALIZATION
        Gnuplot gp("My plot");
        //std::vector<double> x,y; // this are the vector containing (x,y) points
        // END GNUPLOT INITIALIZATION
        try {
           gp.remove_tmpfiles(); // it is always better to do it
           gp.reset_plot(); // delete the plot (like Matlab figure())
           cout << endl << endl << "*** user-defined lists of points (x,y)" << endl;
           gp.set_grid();
           gp.set_style("points").plot_xy(x,y,"user-defined points 2d");
           //sleep(1);  
           //usleep(3e5);
        }
        catch (GnuplotException ge)
        {
           cout << ge.what() << endl;
       }
     } // END GNUPLOT