gnuplot interface en C
Par ronan lepage, Jeudi 3 Novembre 2005 à 09:57 :: General :: #22 :: rss
Pour ceux qui font un peu de développement en C, il est parfois très utile de tracer des courbes ... Cependant, utiliser ddd (Data Display Debugger) pour cela, est un peu trop contraignant et au final pas très pratique, Patrick (euh! private joke inside ;-P) : il faut compiler avec l'option -g, lancer ddd (assez long), mettre un point d'arrêt, executer le programme, pour enfin afficher la courbe (par le biais de gnuplot (déjà)) ...
Heureusement, il existe un moyen plus simple d'utiliser gnuplot directement à partir du programme C:
Heureusement, il existe un moyen plus simple d'utiliser gnuplot directement à partir du programme C:
Il s'agit de Gnuplot Interface en C . C'est assez facile à utiliser (voir ci-dessous un exemple)
La compilation s'effectue en liant le gnuplot_i.o :
(l'execution doit s'effectuer sous X)
gcc essai.c -o essai.exe gnuplot_i.o

La compilation s'effectue en liant le gnuplot_i.o :
(l'execution doit s'effectuer sous X)
gcc essai.c -o essai.exe gnuplot_i.o
/**Programme essai.c**/ #include "stdio.h" #include "stdlib.h" #include "gnuplot_i.h" /// header pour l'affichage dans gnuplot #define TAILLE_FICH 15702 int main(void) { // préliminaires float signal[TAILLE_FICH],tmp[1]; double y[1000]; int i; FILE *fid; //récupération des données à afficher dans un fichier texte // pour avoir la taille des données sans trop ouvrir les fichiers : // faire : wc -l nom_du_fichier.txt fid=fopen("../Scilab/mesure_pouls_ser_rig_moins_fort.txt","r"); for (i=0;i<=TAILLE_FICH-1;i++){ fscanf(fid,"%e",&tmp[0]); signal[i]=tmp[0]; } for (i=0;i<1000 ; i++) { y[i]=signal[i]; } ///// AFFICHAGE ////////// gnuplot_ctrl * h ; // handle de controle h = gnuplot_init() ; gnuplot_setstyle(h, "lines") ; gnuplot_plot_x (h, y, 1000," titre : essai"); sleep(2); /// temps d'affichage de la fenêtre gnuplot gnuplot_close(h); // on ferme la fenêtre ///// fin de l'AFFICHAGE ... return(0); }Et voici ce que l'on arrive à tracer :

Commentaires
Aucun commentaire pour le moment.
Ajouter un commentaire
Les commentaires pour ce billet sont fermés.