Bonjour à tous,
Je voudrais afficher des graphique à partir de fichiers de données (évolution du % d'occupation du processeur dans le temps).
Comme le dis si justement le site framasoft :
Si l’on ne veut pas s’encombrer d’un logiciel de calcul volumineux pour faire simplement des graphes, gnuplot est la solution. (http://www.framasoft.net/article2581.html)
Je me suis dis gnuplot est la solution. J'ai installé le soft. Mais les fichiers que je dois traiter comportent des dates de la forme :
"07/12/2007 18:46:01.870"
D'après la doc (http://www.guilde.asso.fr/gt/education/traductions/gnuplot-f(...) à priori je dois utiliser "timefmt" mais ce dernier ne comporte pas de pattern pour les milli secondes.
Donc amis expert en gnuplot, est - ce que je veux faire est réalisable ou non ?
# besoin ...
Posté par Antoine Duval . Évalué à 0.
[^] # Re: besoin ...
Posté par jeje99 . Évalué à 1.
http://fr.wikipedia.org/wiki/Nagios
Disons que j'ai pas le choix au niveau du format des données. ce serait coool si il existait un patch où autre permettant de gérer des milli seconde dans gnuplot ?
[^] # Re: besoin ...
Posté par tipote . Évalué à 1.
Voir ma solution dans l'autre message. Pour info, je ne pense pas que les millisecondes soient ajoutées à gnuplot dans le timefmt, parce que cette fonction imite ce que propose le langage C, où les secondes sont des nombres entiers, sans autre subdivision... Regarde 'man time.h' pour t'en convaincre.
# Une solution
Posté par tipote . Évalué à 2.
Cette question est apparue il y a quelques temps (2004) dans la mailing-list de gnuplot. Voici un lien:
http://marc.info/?l=gnuplot-info-beta&m=108627878612170&(...)
(le développeur de gnuplot fait remarquer qu'avoir une résolution à la milliseconde quand on trace des choses qui s'étendent sur plusieurs jours n'a pas beaucoup de sens.)
Tu peux t'en sortir avec "using" en specifiant le format (tu perds alors le label en heures/minutes/secondes cependant). Par exemple, avec des dates de la forme 07/12/2007 18:46:01.870, tu doix pouvoir utiliser:
plot 'datafile' using ($1*3600*24+$4*3600+$5*60+$6):7 '%lf/%lf/%lf %lf:%lf:%lf %lf'
Contrairement au timefmt, ceci marchera parce que %lf désigne un nombre décimal, pas seulement un entier.
Remarque que je n'ai pas pris en compte les mois, parce qu'ils n'ont pas tout le même nombre de jours... donc ceci ne marche que pour des données d'un même mois.
Avec ça, les étiquettes de l'axe des abscisses ne seront plus formattées, mais indiquées en nombre de secondes cumulées. Si ça ne te convient pas, on doit pouvoir trouver une solution...
J'espère que ceci va t'aider.
[^] # Re: Une solution
Posté par jeje99 . Évalué à 1.
Mais (hé oui, il y a un mais), pendant que j'y suis, j'ai une petite question par rapport à cette méthode : est - ce qu'il est possible de récupérer un autre type de donnée que des doubles ?
[^] # Re: Une solution
Posté par tipote . Évalué à 1.
'scanf' accepte plusieurs spécifications numériques mais gnuplot n'accepte en entrée que des réels en virgule flottante double précision, donc lf est le seul spécificateur permis.
Quel autre type de donnée voudrais-tu entrer ?
[^] # Re: Une solution
Posté par jeje99 . Évalué à 1.
[^] # Re: Une solution
Posté par tipote . Évalué à 2.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.