[gnuplot] tracé entre deux fichiers...

tracé entre deux fichiers... [gnuplot] - Divers - Linux et OS Alternatifs

Marsh Posté le 28-06-2003 à 17:01:59    

Salut,
 
J'espère que je me plante pas de rubrique...
 
J'ai rien trouvé en recherchant alors je pose ma question...
 
 
Problème :
 
Je dispose de 2 fichiers de données différents. Dans chaque fichiers, la première colonne représente le temps, ensuite j'ai des colonnes décrivant la position et la vitesse d'un objet.
Mon objectif est de tracer la différence entre les 2 positions : c'est-à-dire lire la position de chaque fichier et faire la différence entre elles puis tracer cette différence...
S'ajoute un petit soucis : le nombre de mesures ( lignes ) n'est pas le même dans chaque fichier...
 
Je suis en train de coder la lecture des fichiers pour faire la différence et créer un nouveau fichier qui va bien mais j'ai le sentiment que je peux m'en sortir avec un petit script et gnuplot...
Par contre je ne m'en sors pas avec la doc de gnuplot (et surtout j'ai pas trop le temps...)...
Donc si il y a une star de gnuplot qui a déjà fait ça ...
 
Merci
Glurps


---------------
Comme le Dindon mon Totem, une bonne paire de couilles sur son nez!  
Reply

Marsh Posté le 28-06-2003 à 17:01:59   

Reply

Marsh Posté le 29-06-2003 à 13:52:42    

:bounce:


---------------
Comme le Dindon mon Totem, une bonne paire de couilles sur son nez!  
Reply

Marsh Posté le 01-07-2003 à 11:28:05    

Selon quel critère fais-tu ou pas la différence entre les 2 mesures quand les fichiers ne sont pas "raccords"? Sur un intervalle de temps, seulement quand les 2 mesures existent pour un temps identique? Ca tu peux le faire dans Gnuplot mais bon si tu as une solution simple en pré-traitement autant le faire tout de suite.
colonne1: temps
colonne2: mesure1
colonne3: mesure2
suffit amplement, la soustraction tu peux la faire très simplement dans Gnuplot. Des "trous" dans les colonnes 2 ou 3 c'est gérable si ça peut te faciliter le pré-traitement.

Reply

Marsh Posté le 01-07-2003 à 12:41:55    

Je viens de trouver ca ds la doc :
 


Ceci crée un tracé de la somme des 2e et 3e colonnes en fonction de la première : (la chaîne de format spécifie des colonnes séparées par des virgules plutôt que des espaces)  
 
      plot 'fichier' using 1:($2+$3) '%lf,%lf,%lf'
 
Dans cet exemple, les données sont lues dans le fichier "MesDonnees" selon un format plus compliqué :  
 
      plot 'MesDonnees' using "%*lf%lf%*20[^\n]%lf"
 
La signification de ce format est :  
 
 
      %*lf        ignore un nombre
      %lf         lit un nombre double précision (x par défaut)
      %*20[^\n]   ignore 20 caractères non-saut-de-ligne
      %lf         lit un nombre double précision (y par défaut)
 
Une astuce consiste à utiliser l'opérateur ternaire ?: pour filtrer les données :  
 
 
      plot 'fichier' using 1:($3>10 ? $2 : 1/0)
 


 
A priori, tu peux donc faire un peu tout ce que tu veux :
 


plot 'fichier' using 1:($2+$3) '%lf,%lf,%lf'


 
En espérant que ca t'aide.
 
@+


Message édité par Evadream -jbd- le 01-07-2003 à 12:42:21
Reply

Marsh Posté le 21-04-2009 à 15:03:49    

Je up ce sujet.
 
Je veux faire plus ou moins la même chose, j'ai deux fichiers, ils ont la même 1ere colonne (abscisse) et je veux tracer la différence entre la 2e colonne de ces deux fichiers?
Comment puis-je faire, car dans gnuplot j'arrive à tracer la différence entre deux colonnes que quand elles appartiennent à un seul et même fichier.
 
:jap:


---------------
DVD |  Ludothèque: BGG
Reply

Marsh Posté le 28-05-2011 à 06:54:22    

Salut Romn!!!
 
Cela ne va peut etre pas te servir (j'espere que tu a resolu ton probleme), mais on sait jamais cela pourra aider d'autres utilisateurs de gnuplot.
 
Alors, pour tracer la différence entre deux colonnes contenues dans deux files differents tu utilise l'option "paste".  
si tu as :  
 
file_1: Colonne 1     Colonne 2
          ...
 
file_2: Colonne 3     Colonne 4
          ....
 
paste file_1 file_2 te renvois:
 
Colonne 1     Colonne 2    Colonne 3     Colonne 4
....
 
Du coup pour plotter, cela donne:
 
plot "<paste file_1 file_2" u $1:($2-$4) ....
 
voila je crois que cela repond au problem
Tchao

Reply

Marsh Posté le 28-05-2011 à 10:41:10    

Ca m'a l'air parfait, merci ! :jap:


---------------
DVD |  Ludothèque: BGG
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed