IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Utilisation de gnuplot en c++ ou c


Sujet :

C

  1. #1
    Membre du Club
    Inscrit en
    Avril 2008
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 98
    Points : 54
    Points
    54
    Par défaut Utilisation de gnuplot en c++ ou c
    salut, jaimerais a partir de mon programme reussir a executer gnuplot.
    j'ai trouve plein d'info sur le net mais elles ne sont pas precises.
    merdi de votre aide.

  2. #2
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Points : 5 508
    Points
    5 508
    Par défaut
    Tu trouveras quelques éléments de réponse ici: http://ndevilla.free.fr/gnuplot/

    Thierry
    "The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
    "If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow

    FAQ-Python FAQ-C FAQ-C++

    +

  3. #3
    Membre du Club
    Inscrit en
    Avril 2008
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 98
    Points : 54
    Points
    54
    Par défaut
    merci mais je travaille sous windows

  4. #4
    Membre du Club
    Inscrit en
    Avril 2008
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 98
    Points : 54
    Points
    54
    Par défaut
    personne n'a une idee?

  5. #5
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 603
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 603
    Points : 17 913
    Points
    17 913
    Billets dans le blog
    2
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    system("\ProgramFiles\gnuplot\gnuplot.exe");
    ou quelque chose comme ça...
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

  6. #6
    Membre du Club
    Inscrit en
    Avril 2008
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 98
    Points : 54
    Points
    54
    Par défaut
    je vais essayer

  7. #7
    Membre du Club
    Inscrit en
    Avril 2008
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 98
    Points : 54
    Points
    54
    Par défaut
    j'ai réussi
    en fait il faut écrire dans un fichier a l'aide des commandes
    FILE *fp;
    fp=fopen("fonc.gnu",w);

    et ajouter
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    system("start \"C:\\Mondossierprogramme\\gnuplot\\bin\\wgnuplot.exe\" fonc.gnu");

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 60
    Points : 33
    Points
    33
    Par défaut
    Bonjour à tous.
    je squatte ici pour ne pas ouvrir un nouveau sujet pour rien.
    J'aimerais savoir si j'ai bien compris.

    Gnuplot est un programme permettant de générer des graphs en ligne de commande ou à partir de scripts.
    gnuplot_i qui est développé ici http://ndevilla.free.fr/gnuplot/gnuplot_i/index.html est une interface qui permet d'utiliser gnuplot à partir d'un programme C.

    Gnuplot est multi-plateforme alors que gnuplot_i est uniquement sous Linux.
    Ai-je bien tout compris ?
    Dans ce cas il est tout a fait possible de créer un programme C qui générera un fichier .gnu qui contiendra notre script puis de le lancer comme cela est expliqué post précédent et donc plus besoin de gnuplot_i.

    J'ai bon ou je délire ?
    merci

  9. #9
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 603
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 603
    Points : 17 913
    Points
    17 913
    Billets dans le blog
    2
    Par défaut
    pour gnuplot_i je ne sais pas, mais pour gnuplot, il suffit de lui donner un fichier texte de 2 colonnes (représentant x et y)

    Donc le "format" gnuplot est des plus simples...
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 60
    Points : 33
    Points
    33
    Par défaut
    j'ai une question à propos de gnuplot,
    sur ce lien http://sourceforge.net/project/showf...ackage_id=1996
    le package contient plusieurs archives, l'archive gp423win32.zip est pour windows uniquement.
    je développe sous windows acutellement seulement mon application C sera peut être au final sur server Linux.
    Il faut donc que je télécharge l'archive gnuplot-4.2.3.tar.gz non ?
    Cependant elle ne contient pas d'.exe je ne peut donc pas faire de
    system("start \"C:\\Mondossierprogramme\\gnuplot\\bin\\wgnuplot.exe\" fonc.gnu");

    je ne comprends pas...

    Pouvez vous m'éclairer ?

  11. #11
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 603
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 603
    Points : 17 913
    Points
    17 913
    Billets dans le blog
    2
    Par défaut
    une archive pour unix/linux, en général, contient les sources (surtout venant de GNU), car ça doit fonctionner sur pleins de machines différentes.

    Il suffit alors de faire "make" et sans doute "make install" après, faut voir le README
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

  12. #12
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 60
    Points : 33
    Points
    33
    Par défaut
    faire "make" sous windows ??

  13. #13
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 603
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 603
    Points : 17 913
    Points
    17 913
    Billets dans le blog
    2
    Par défaut
    ben compiler quoi...

    Si tu regardes ton IDE préféré, il y a bien une option de compil...
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

  14. #14
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 60
    Points : 33
    Points
    33
    Par défaut
    désolé je ne comprends toujours pas comment utiliser gnuplot à partir de l'archive qui est compatible sous toutes les plate formes... je sais je suis nul
    dans le fichier install voila ce qui est écrit

    "Using the MinGW32 port of gcc: you need parts of the Micrsoft SDK for the
    moment.
          copy ..\config\makefile.mgw makefile
      Look through the Makefile to see if you need to make any changes.
          make 
          make install"
    Mon IDE est codeblock.
    dans le fichier makefile.mgw voila ce qui est dit :
    "To compile gnuplot for WinXX:
    #
    # - compile the package: go to directory 'gnuplot' and therefrom run
    #	 make -C src -f ../config/makefile.mgw"

  15. #15
    Membre expérimenté
    Inscrit en
    Décembre 2004
    Messages
    1 478
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 478
    Points : 1 664
    Points
    1 664
    Par défaut
    Il faut prendre les problemes un par un, tu te compliques la vie. Puisque tu es sous Windows, utilise l'installeur Windows pour installer GNUplot. On verra pour Linux apres (d'ailleurs, il y a certainement un package pour ta distribution Linux qui evite de devoir compiler a partir des sources).

    Essaie de reproduire les exemples donnes sur le site.
    Par exemple, essayons avec le premier script de cette page.
    Il suffit de creer un fichier texte qui contient le script, et d'appeler GNUplot dessus.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
     
    #include <stdio.h>
    #include <stdlib.h>
     
    int main(void)
    {
      int ret = EXIT_FAILURE;
      char const *gnuname = "simple.1.gnu";
      FILE *f = fopen(gnuname, "w");
      if (f != NULL)
      {
        /*
         * Write the control script for GNUplot
         */
        fprintf(f, "# set terminal png transparent nocrop "
                    "enhanced font arial 8 size 420,320\n");
        fprintf(f, "# set output 'simple.1.png'\n");
        fprintf(f, "set key inside left top vertical Right "
                    "noreverse enhanced autotitles box "
                    "linetype -1 linewidth 1.000\n");
        fprintf(f, "set samples 50, 50\n");
        fprintf(f, "plot [-10:10] sin(x),atan(x),cos(atan(x))\n");
     
        /*
         * Run GNUplot on the control script (for Windows)
         */
        {
           char command[300];
           const char *gnupath = "\"C:\\Mondossierprogramme\\gnuplot\\bin\\wgnuplot.exe\"";
           sprintf(command, "start %s %s", gnupath, gnuname);
           printf("Executing %s...\n", command);      
           system(command);
        }
        fclose(f);
        ret = EXIT_SUCCESS;
      }
      else
      {
        fprintf(stderr, "Could not create %s.\n", gnuname);
      }
     
      return ret;
    }
    Une fois que ce test fonctionne, tu pourras travailler ton propre fichier de commande. Ensuite, tu pourras envisager le portage vers Linux (qui devrait etre minimum, puisqu'il suffit de changer la commande envoyee a system()).

  16. #16
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 60
    Points : 33
    Points
    33
    Par défaut
    c'est juste que vu que gnuplot est multi-plateforme j'ai pris la version qui est indépendant de la plateforme comme ca ne posera aucun pb de mettre l'application sur un server linux ou windows, il suffit juste de générer un .exe soit même à partir du makefile, évidemment je ne sais pas le faire...
    sinon merci pour l'exemple ca m'aide, ce forum est sympa !

  17. #17
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 60
    Points : 33
    Points
    33
    Par défaut
    Citation Envoyé par DaZumba Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
     
    #include <stdio.h>
    #include <stdlib.h>
     
    int main(void)
    {
      int ret = EXIT_FAILURE;
      char const *gnuname = "simple.1.gnu";
      FILE *f = fopen(gnuname, "w");
      if (f != NULL)
      {
        /*
         * Write the control script for GNUplot
         */
        fprintf(f, "# set terminal png transparent nocrop "
                    "enhanced font arial 8 size 420,320\n");
        fprintf(f, "# set output 'simple.1.png'\n");
        fprintf(f, "set key inside left top vertical Right "
                    "noreverse enhanced autotitles box "
                    "linetype -1 linewidth 1.000\n");
        fprintf(f, "set samples 50, 50\n");
        fprintf(f, "plot [-10:10] sin(x),atan(x),cos(atan(x))\n");
     
        /*
         * Run GNUplot on the control script (for Windows)
         */
        {
           char command[300];
           const char *gnupath = "\"C:\\Mondossierprogramme\\gnuplot\\bin\\wgnuplot.exe\"";
           sprintf(command, "start %s %s", gnupath, gnuname);
           printf("Executing %s...\n", command);      
           system(command);
        }
        fclose(f);
        ret = EXIT_SUCCESS;
      }
      else
      {
        fprintf(stderr, "Could not create %s.\n", gnuname);
      }
     
      return ret;
    }
    Bonjour, j'ai testé ce code en le modifiant et ca marche.
    Simplement ma question est :
    comment modifier ce code pour qu'il soit portable ?
    j'ai cherché du coté de popen mais je n'ai pas réussi à la faire marcher sous windows.
    Je rappelle je développe sous windows Xp une application qui doit être portable.
    Voila si vous avez une idée, merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Système] Utilisation gnuplot avec php
    Par jejerome dans le forum Langage
    Réponses: 12
    Dernier message: 27/04/2013, 16h39
  2. Réponses: 1
    Dernier message: 28/05/2008, 00h35
  3. Utilisation de GNUPLOT
    Par GDMINFO dans le forum Applications et environnements graphiques
    Réponses: 6
    Dernier message: 24/01/2008, 12h30
  4. comment utiliser gnuplot ?
    Par momeftah dans le forum Mandriva / Mageia
    Réponses: 5
    Dernier message: 02/03/2007, 08h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo