Forum Programmation.autre gnuplot et représentation de delais

Posté par (page perso) . Licence CC by-sa
Tags : aucun
1
8
déc.
2015

Bonjour à tous,

J'ai des données de type :

AUTOMATE1;heure de début;heure de fin
AUTOMATE2;heure de début;heure de fin
AUTOMATE1;heure de début;heure de fin
AUTOMATE3;heure de début;heure de fin
AUTOMATE2;heure de début;heure de fin
AUTOMATE1;heure de début;heure de fin

Est-ce qu'il est possible de représenter chronologiquement les traitements avec gnuplot ? J'imagine une ligne par automate, dans le but de faire une grande frise chronologique.

J'avoue ne pas trop connaître gnuplot, toute solution scriptable est la bienvenue…

Merci à vous !

  • # gantt?

    Posté par . Évalué à 3.

    Quelque chose dans ce genre peut-être ?

    • [^] # Re: gantt?

      Posté par (page perso) . Évalué à 2.

      Effectivement, je n'avais pas pensé à adapter le diagramme de gantt !

      Je vais bricoler ça, merci beaucoup !

    • [^] # Re: gantt?

      Posté par (page perso) . Évalué à 2.

      Malheureusement, il me crée une nouvelle ligne pour chaque entrée. J'aurai aimé pouvoir présenter chaque traitement de manière linéaire…

      Je vais creuser, mais si qqn a une solution, je suis preneur !

      • [^] # Re: gantt?

        Posté par . Évalué à 4.

        Le diagramme de Gantt présenté dans l'exemple utilise simplement un vecteur. Donc il suffit de remplacer

        plot $DATA using (T(2)) : ($0) : (T(3)-T(2)) : (0.0) : yticlabel(1) with vector as 1, \
             $DATA using (T(2)) : ($0) : 1 with labels right offset -2

        par

        plot $DATA using (T(2)) : (0.0) : (T(3)-T(2)) : (0.0) with vector as 1, \
             $DATA using (T(2) + (T(3) - T(2)) / 2) : (0.1) : 1 with labels

        pour avoir un graphique à une seule dimension.

        with vector prend prend 4 paramètres : x, y, xdelta, ydelta. Le 5ème paramètre dans la première solution (yticlabel(1)) permet d'avoir les labels directement sur les axes sans passer par set axis.
        La deuxième ligne permet d'afficher un label contenu dans la première colonne directement sur le graphique.

        • [^] # Re: gantt?

          Posté par (page perso) . Évalué à 2.

          Merci pour les explications, c'est toujours bon de comprendre.

          Mais je pense que le problème ne vient pas de là, mais du fait qu'à chaque entrée, gnuplot me crée une nouvelle ligne dans le graphe, même si l'id de cet entrée était déjà présent.

          J'aurai aimé que toutes les entrées de AUTOMATE1 soient sur la même ligne.

          Mais peut être faut-il que je reformule mes données d'entrées ?

          • [^] # Re: gantt?

            Posté par . Évalué à 4.

            L'idée pourrait simplement être de rajouter une colonne pour convertir AUTOMATE_X en index de cette façon :

            $DATA << EOD
            #Task     start end ID
            AUTOMATE1 1     2   1
            AUTOMATE2 2     3   2
            AUTOMATE3 3     4   3
            AUTOMATE1 4     5   1
            EOD
            
            set yrange [-1:4]
            unset key
            
            plot $DATA using 2 : 4 : ($3 - $2) : (0.0) : yticlabel(1) with vector

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.