Gnuplot
Résolu1 réponse
Bonjour,
Pour utiliser gnuplot, il faut stocker tes points dans un fichier de données (un fichier texte traditionnellement une extension ".dat").
Ensuite sois tu fais un script gnuplot (fichier ".gnu") qui définira ton fichier de données (e.g. toto.dat), tes axes et ton format de sortie (personnellement je préconise svg pour avoir un rendu vectoriel).
Dans le code suivant, le code cpp génère le fichier toto.dat et le fichier toto.gnu :
Il ne reste plus qu'à le compiler et le lancer, puis appeler gnuplot.
Tu auras alors un fichier toto.svg, que tu peux afficher par exemple avec chrome/chromium.
Bonne chance
Pour utiliser gnuplot, il faut stocker tes points dans un fichier de données (un fichier texte traditionnellement une extension ".dat").
Ensuite sois tu fais un script gnuplot (fichier ".gnu") qui définira ton fichier de données (e.g. toto.dat), tes axes et ton format de sortie (personnellement je préconise svg pour avoir un rendu vectoriel).
Dans le code suivant, le code cpp génère le fichier toto.dat et le fichier toto.gnu :
#include <iostream> #include <fstream> bool make_dat(const char *filename_wext, double ui, double r) { bool ret = true; std::string filename(filename_wext); filename += ".dat"; std::ofstream ofs(filename); if (ofs) { for (unsigned i = 0; i < 100; i++) { ui = r * (1 - ui); ofs << i << '\t' << ui << std::endl; } ofs.close(); std::cerr << filename << " written" << std::endl; } else { std::cerr << "Cannot write " << filename << std::endl; ret = false; } return ret; } bool make_gnu(const char *filename_wext) { bool ret = true; std::string filename(filename_wext); filename += ".gnu"; std::ofstream ofs(filename); if (ofs) { ofs << "set terminal svg" << std::endl << "set output \"" << filename_wext << ".svg\"" << std::endl << "plot \"" << filename_wext << ".dat\" using 1:2 with lines" << std::endl; ofs.close(); std::cerr << filename << " written" << std::endl; } else { std::cerr << "Cannot write " << filename << std::endl; ret = false; } return ret; } int main() { double ui = 0; double r = 2; const char *filename_wext = "toto"; make_dat(filename_wext, ui, r); make_gnu(filename_wext); return 0; }
Il ne reste plus qu'à le compiler et le lancer, puis appeler gnuplot.
(mando@velvet) (~) $ g++ toto.cpp && ./a.out && gnuplot toto.gnu
toto.dat written
toto.gnu written
Tu auras alors un fichier toto.svg, que tu peux afficher par exemple avec chrome/chromium.
Bonne chance