Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : appel de gnuplot a partir d'un prog en c++ [ Divers / Divers ] (keno83)

jeudi 10 août 2006 à 00:08:30 | appel de gnuplot a partir d'un prog en c++

keno83

bonjour,

je vous explique un peu la situation: j'ai un fichier .txt avec plusieurs colonnes et j'aimerai faire un graphe des colonnes 2,3 etc  en fonction de la colonne 1...
D'apres les quelques recherches que j'ai faite, il faudrait que j'utilise 'using' dans la syntaxe gnuplot.
J'aimerai donc savoir comment je peux directement appeler gnuplot a partir d'un programme c++ pour que l'afficahge du graphe se fasse directement à l'execution du programme.
Il me semble qu'il faut utiliser la fonction 'system' mais je n'en suis pas sur

Si quelqu'un peut m'aider...


jeudi 10 août 2006 à 09:43:48 | Re : appel de gnuplot a partir d'un prog en c++

turnerom

Oui, c'est ca; tu dois utiliser system.
Essaye deja de trouver la bonne ligne de commande en la tappant directement dans la console, une fois que tu la trouver, tu l'appel dans ton prog avec system :

system("gnuplot argument");

TuRn3r

jeudi 10 août 2006 à 21:25:44 | Re : appel de gnuplot a partir d'un prog en c++

keno83

ok
et est ce qu'il est possible de faire varier une variable dans l'argument
Par la je veux dire, j'ai un fichier avec plusieurs colonnes.
Pour faire le graphe de la colonne 2 en fonction de la colonne 1 j'aurai dans l'argument quelque chose du genre 'using 1:2'...
serait il alors possible de faire varier le 2 du genre a avoir

for (k=0,k<size,k++)
system('........using 1:k')




jeudi 10 août 2006 à 21:38:07 | Re : appel de gnuplot a partir d'un prog en c++

turnerom

oui, formatte la chaine avant de l'envoyer

std::stringstream cmd:
for (k=0,k<size,k++)
{
    cmd << "gnuplot using 1:" << k ;

    system(cmd.str.c_str());
}


ou si tu est en C utilise sprintf à la place, l'idée reste la même

TuRn3r

jeudi 10 août 2006 à 21:40:50 | Re : appel de gnuplot a partir d'un prog en c++

turnerom

oui, tu es en C++, j'avias pas vu, fais ca ca devrai marcher (si la syntaxe est bonne)


std::stringstream cmd;
for (size_t k=0, k<size, k++)
{
    cmd << "gnuplot using 1:" << k ;

    system(cmd.str().c_str());
}

TuRn3r

jeudi 10 août 2006 à 22:40:25 | Re : appel de gnuplot a partir d'un prog en c++

keno83

merci pour tes reponses j'essaie ca de suite...
par contre petite question pour comprendre un peu ce que tu m'indiques:
pourquoi le 'size_t' devant k=0,k<size,k++)
qu'est ce que cela signifie

deuxieme petite question: il doit y avoir un en-tete a rajouter pour utiliser stringstream,non

et derniere question: si je me fie a tes dires, la syntaxe de mon programme doit donc etre:

std::stringstream cmd;
for(size_t k=0;k<size;k++)
{
cmd<<"gnuplot plot 'res.txt' using 1:"<<k;

system(cmd.str().c_str());
}

En tout cas merci  beaucoup pour toutes tes indications




jeudi 10 août 2006 à 23:48:11 | Re : appel de gnuplot a partir d'un prog en c++

turnerom

pourquoi le 'size_t'
--> size_t correspond à un unsigned int, c'est exactement pareil mais plus sourt à écrire (faignantise pure)

deuxieme petite question: il doit y avoir un en-tete a rajouter pour utiliser stringstream,non
--> oui : <sstream>

et derniere question: si je me fie a tes dires, la syntaxe de mon programme doit donc etre:

std::stringstream cmd;
for(size_t k=0;k<size;k++)
{
cmd<<"gnuplot plot 'res.txt' using 1:"<<k;

system(cmd.str().c_str());
}
--> oui mais pourquoi ton fichier est entre ' ', je suis pas sur que ce soit utile (à vérifier néanmoins)

TuRn3r

vendredi 11 août 2006 à 21:55:09 | Re : appel de gnuplot a partir d'un prog en c++

keno83

merci  pour toutes tes indications, je pense arriver a la solution
par contre petit souci:
lorsque j'ecris cmd<<"gnuplot plot 'res.txt' using 1:"<<k
a l'execution, le compilateur me dit qu'il ne trouve pas le fichier plot, ce qui laisse penser que la déclaration 'gnuplot plot 'res.txt' using ... n'est pas la bonne...
si quelqu'un sait quelle est la syntaxe a utiliser

merci d'avance


mercredi 27 juin 2007 à 10:29:03 | Re : appel de gnuplot a partir d'un prog en c++

fabienquillet

je voudrai appeller la fonction gnuplot avec un programme c est ce que tu connais la syntaxe merci d'avance

mercredi 27 juin 2007 à 10:37:29 | Re : appel de gnuplot a partir d'un prog en c++

turnerom

    gp        = popen(GNUPLOT_PATH,"w"); 
if(gp == NULL){
fprintf(stderr, "Oops, I can't find %s.", GNUPLOT_PATH);
exit(EXIT_FAILURE);
}
fprintf(gp,"reset \n");
fprintf(gp,"set term windows \n");
fflush(gp);
fprintf(gp,"set grid x y \n");
fflush(gp);
fprintf(gp,"set title \"Répartition des nombres générés par le pnrg r250 pour %d de tirages\" tc lt 0 \n",max_generation);
fflush(gp);
// fprintf(gp,"set xlabel \'Ensemble\' tc lt 0 \n");
// fflush(gp);
fprintf(gp,"set ylabel \'Nombre de tirages \' tc lt 0 \n");
fflush(gp);
fprintf(gp,"set xr [0:1]\n");
fflush(gp);
fprintf(gp,"set yr [0:%d]\n",(int)(1.2*max_generation/nbr_case));
fflush(gp);
fprintf(gp,"set xtics\n");
fflush(gp);
fprintf(gp,"set ytics\n");
fflush(gp);
fprintf(gp,"plot \'%s\' u 1:2 title \"\" with boxes fs solid 0.7\n",fp1);
fflush(gp);
fprintf(gp,"set nokey \n");
fflush(gp);
fprintf(gp,"set label \"{/Symbol c}^2 = %f\" tc lt 16 at 0.1,%d \n",chi_2,(int)(1.1*max_generation/nbr_case));
fflush(gp);
fprintf(gp,"set label \"dl = %d\" tc lt 16 at 0.4,%d \n",
(int)(nbr_case-1),(int)(1.1*max_generation/nbr_case));
fflush(gp);
fprintf(gp,"set label \"{/Symbol c}^{2}_{crit}(%d,%1.2f)= %3.3f\" at 0.65,%d\n",
(int)(nbr_case-1.),0.05,123.54,
(int)(1.1*max_generation/nbr_case));
fflush(gp);
fprintf(gp,"set encoding iso_8859_1 \n");
fflush(gp);
fprintf(gp,"set term post eps landscape enhan mono \"Times-Roman\" 18 \n");
fflush(gp);
fprintf(gp,"set output \"%s.eps\"\n",fp2);
fflush(gp);
fprintf(gp,"replot\n");
fflush(gp);
getchar();
fprintf(gp,"reset\n");
fflush(gp);
fclose(gp);




TuRn3r


1 2

Cette discussion est classé dans : partir, appel, prog, colonnes, gnuplot


Répondre à ce message

Sujets en rapport avec ce message

Lancer un autre fichier à partir d'un prog en C++ [ par trinitacs ] J'aimerai lancer un .bat à partir de mon prog en C++. Coment dois-je faire?Est-ce que le .bat peut s'éxécuetr de manière différentes suivant la manièr Appel dll VB6 à partir de C++ [ par stof35 ] Bonjour,Je dois réaliser l'intégration d'une DLL écrite en VB6 par un prestataire externe dans un projet C++. J'ai essayé par des moyens classiques ma Raccourci-savoir si mon prog est lancé à partir d'un raccourci [ par Nomis ] Bonjour,Win98SE,MeAvec les API: comment savoir si mon programme est lancé à partir d'un raccourci (ex: prog.lnk sur le bureau faisant référence à prog appel d'une fonction [ par dletozeun ] bonjour,Je voudrais savoir s'il est possible d'appeler une fonction dont ont ne connais pas le nom dans le prog lui meme, mais en le recuperant dans u Executer un prog linux(commandes) a partir d'un prog windows(C++) [ par angeljp ] Salut,Je voudrais savoir s'il est possible d'executer à partir d'un PC sous Win2k un programme se trouvant sur une station Linux ?Autre chose : je vou Appel de fonction VB a partir de C++ [ par sekatirex ] bonjour, jvoudrai savoir si on peu appeler un fonction ou program écrit en VB5 a a partir d'une programme en C++.! Appel de fonction VB a partir de C++ [ par sekatirex ] car en fet je voudra fer un programme ki utile deux otre programme dont 1 en c++ et lotre en VB!en c++ c un programm de dessin et en vb un ocr !en mél Lancement d'une appli a partir d'un prog [ par kididouille ] Bonjour à tous!J'ai une ptite appli MFC et je voudrai lors d'un appui sur un bouton  ouvrir wordpad bloc note ou un editeur de texteQuels sont les com Piloter excel a partir d'un prog externe. [ par SnOOpss ] Bonjour, bon je pense que le titre est assez explicite, en fait j'ai trouvé la source suivante http://www.cppfrance.com/codes/AUTOMATISER-EXCEL-SANS-M Appel fonction avec GTK+ [ par ptityo31 ] Bonjour,je débute sur GTK+, et j'aimerai avoir des précisions sur le lancement d'une application à partir d'un clic.En effet je dois envoyer des trame


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version


HTC G1

Entre 449€ et 449€


Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,421 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.