[GNU] en PERL

Fermé
sandrill0n Messages postés 79 Date d'inscription lundi 2 mai 2005 Statut Membre Dernière intervention 22 octobre 2011 - 12 mai 2005 à 13:32
sandrill0n Messages postés 79 Date d'inscription lundi 2 mai 2005 Statut Membre Dernière intervention 22 octobre 2011 - 6 juin 2005 à 13:40
Bonjour,

Comment on utilise GNUplot avec un script en PERL ?

J'ai déjà organisé mes données et je fais de graphique avec des X, c'est pas terrible...
J'aimerais utiliser GNUplot pour avoir des vrais diagramme en barres.

Merci
A voir également:

6 réponses

kmf31 Messages postés 1564 Date d'inscription mercredi 30 mars 2005 Statut Contributeur Dernière intervention 22 juin 2007 501
12 mai 2005 à 14:08
En principe tu peux taper de commandes "Gnuplot" dans un fichier texte et simplement faire:

gnuplot fichier_commandes

pour les executer.

Apres il est tout a fait possible d'ecrire un script perl qui cree de facon un peu plus automatique le fichier de commandes pour gnuplot et qui appelle apres la ligne avec gnuplot (avec system(...) ou similaire). On peut aussi faire un shell-script qui appelle d'abord un perl-script pour faire de choses de calculs etc. un peu plus compliques et apres ca appelle le gnuplot. Il y a beaucoup de facons de faire. Notamment dans un shell-script on peut faire de boucles pour refaire 1000 fois de choses similaires avec differents fichiers de donnees.
Si on se prend bien on surpasse largement tout logiciel payant comme origin pour ca! Dans un logiciel comme origin c'est facile a faire pour une fois mais dur/impossible pour 1000 fois!!
0
sandrill0n Messages postés 79 Date d'inscription lundi 2 mai 2005 Statut Membre Dernière intervention 22 octobre 2011
12 mai 2005 à 14:23
ok, mais mon problème est que je ne connais pas les lignes de commande à utiliser...

J'ai les données de sortie prêtes (puisque je fais le Pareto avec des X), mais je ne sais pas comment les utiliser pour le GNUplot
0
kmf31 Messages postés 1564 Date d'inscription mercredi 30 mars 2005 Statut Contributeur Dernière intervention 22 juin 2007 501
12 mai 2005 à 15:02
Il te faudra simplement apprendre Gnuplot. Ca necisste un certain effort mais ca n'a rien a avoir avec ta question initiale. Je ne peut pas expliquer ca dans un forum comme de la meme facon je ne peux pas expliquer C ou C++ comme ca. Il y a des choses ou il faut s'y mettre. De toute facon il faut chercher la doc. En principe en gunplot tu le lances avec "gnuplot" et la dedans de tapes "help" et ca te donne un debut de l'aide. J'espere pour toi que ton anglais est suffisant, mais peut-etre ca marche aussi en francais ?? Apres tu peux faire "help <sujet>" ou "help <commande>". Il faut simplement jouer avec. La 1er commande c'est: "plot ...", par exemple tu peut faire "plot sin(x)". Apres tu peux tracer a partir de fichiers de donnees, il y a d'options pour les cadres, legendes, labels etc. et on peut exporter vers de fichier postscript et plein d'autre formats. Ce n'est pas la meme chose qu'un truc graphique tout pret, mais une fois on connait c'est tres tres puissant!
0
sandrill0n Messages postés 79 Date d'inscription lundi 2 mai 2005 Statut Membre Dernière intervention 22 octobre 2011
17 mai 2005 à 17:31
Au risque de me répéter, je souhaiterais utiliser GNUplot dans un script PERL....

Avec mon programme initiel, j'ai un pareto qui a cette allure :
		0         10        20        30        40        50
		|---------|---------|---------|---------|---------->
BAD            	|XXXX
MET2LWL        	|XXX
LD25VTI        	|X
LD45RDSON      	|X

C'est pas terrible pour exploiter les données ensuite...

J'ai trouvé des infos que pour utiliser GNUplot hors du script, je souhaiterais connaître quelques commandes de base (et apprendre les autres par la suite et par moi-même) pour pouvoir commencer à faire des graphes
0
[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 1 083
18 mai 2005 à 16:50
Salut Sandrill0n,

1.

Tu peux envisager d'utiliser un module de CPAN tout fait :

http://search.cpan.org/search?query=Chart%3A%3AGnuPlot&mode=all

En relève quelques uns qui fonctionnent avec GNUPlot :

Chart::Graph::Gnuplot
Chart::Graph

Chacun est documenté et comporte des exemples.

2.

Si tu veux utilser la syntaxe GNUPlot directement sans passer par un module Perl. La FAQ de GNUPlot te donner un exemple de syntaxe utilisant les "pipes" te permettant de piloter GNUPlot à partir d'un script Perl :

http://www.gnuplot.info/faq/faq.html#SECTION000910000000000000000

Dans cet exemple, les commandes sont passées au programme gnuplot avec un print sur le descripteur de fichier (le print est en fait envoyé sur l'entrée standard de GNUPlot par Perl).

Je ne peux pas t'aider plus, car je ne connais pas GNUPlot.

http://www.google.fr/search?hl=fr&q=gnuplot+tutorial&spell=1

Tu as même un tutoriel en français dans les réponses.


Dal
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
sandrill0n Messages postés 79 Date d'inscription lundi 2 mai 2005 Statut Membre Dernière intervention 22 octobre 2011
19 mai 2005 à 14:59
J'ai commencé à tenter des trucs, mais je ne sais pas comment utiliser les données de sorties que j'utilise habituellement pour faire l'histogramme qui ne ressemble à rien :

# Parcour du HASH des tests
foreach $idx_t (keys %Les_Tests) {

        # Tri des noms de test en fonction du nb de fois qu'ils sont presents
        @test_occ = sort { $Les_Tests{$b} <=> $Les_Tests{$a} } keys %Les_Tests;

        push @nb_occ, split (/\t/, $Les_Tests{$idx_t});
        @nb_occ = sort {$b <=>$a} @nb_occ;
}
# Mise en forme Pareto
print OUTFILE "\t\t0         10        20        30        40        50\n";
print OUTFILE "\t\t|---------|---------|---------|---------|---------->\n";

for ($cpt_nb=0; $cpt_nb <= $#test_occ; $cpt_nb++) {
        # Impression du nom du test
        print OUTFILE "$test_occ[$cpt_nb]";
        # Creation des espaces (pour mise en forme)
        for ($cpt_i=0; $cpt_i < 10-length($test_occ[$cpt_nb]); $cpt_i++) {
                print OUTFILE " ";
        }
        print OUTFILE "\t|";
        # Impression des X qui symbolisent les Lots
        for ($cpt_c=0; $cpt_c < $nb_occ[$cpt_nb]; $cpt_c++) {
                print OUTFILE "X";
        }
        print OUTFILE "\n";
}

close($LECT);
close(OUTFILE);

# Faire une sortie graphique avec gnuplot !!

#gnuplot
set title "Pareto des Lots"
set terminal gif medium size
set xlabel "Tests rejetes"
set ylabel "Nombre Lots"
set xrange [$test_occ]
set yrange [0:50]
plot '-' with boxes
$nb_occ
0
sandrill0n Messages postés 79 Date d'inscription lundi 2 mai 2005 Statut Membre Dernière intervention 22 octobre 2011
6 juin 2005 à 13:40
Salut !

J'ai 2 questions supplémentaires...
J'ai un titre pour mon graphe...

1/ Comment faire pour ajouter un commentaire
2/ Comment faire pour ajouter la date du jour à laquelle le graphe est créé ?

Merci
0