Difference between revisions of "Gnuplot in cpp"
From AIRWiki
MauroBrenna (Talk | contribs) (How to plot using gnuplot in your C/C++ project) |
MauroBrenna (Talk | contribs) |
||
| Line 16: | Line 16: | ||
# You should download gnuplot-cpp library. I suggest you to use my version LINKHERE because the official one [http://code.google.com/p/gnuplot-cpp/ gnuplot-cpp]has problems, (see below). | # You should download gnuplot-cpp library. I suggest you to use my version LINKHERE because the official one [http://code.google.com/p/gnuplot-cpp/ gnuplot-cpp]has problems, (see below). | ||
#To use the plotting library you should only need to include: "gnuplot-cpp/gnuplot_i.hpp" | #To use the plotting library you should only need to include: "gnuplot-cpp/gnuplot_i.hpp" | ||
| + | # A code snippet is here presented that simply plots a 2D set of points: | ||
| + | <code> | ||
| + | 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 | ||
| + | |||
| + | </code> | ||
Revision as of 12:53, 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
- You should download gnuplot-cpp library. I suggest you to use my version LINKHERE because the official one gnuplot-cpphas problems, (see below).
- To use the plotting library you should only need to include: "gnuplot-cpp/gnuplot_i.hpp"
- 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