Re: graphviz et variables

Top Page

Reply to this message
Author: samuel
Date:  
To: Patrice Karatchentzeff
CC: GUILDE
Subject: Re: graphviz et variables
Le Thu, 27 Jan 2011 11:17:02 +0100,
Patrice Karatchentzeff <patrice.karatchentzeff@???> a écrit :


Bonjour,

Si je comprend bien ton besoin, tu cherches à mutualiser les propriétés
communes de certains noeuds (nodes). Un peu dans la meme logique que les
"class" en CSS, c'est bien çà ?

Je n'ai encore jamais été aussi rigoureux que toi ;-) ...mais d'après la
page suivante, il faut utiliser la notion de "subgraph" (sans l'option
"cluster)"

http://www.adp-gmbh.ch/misc/tools/graphviz/index.html

Extrait définissant les subgraphs :
    * Groups related nodes and edges together
    * Provides a context for common attributes (for example default
      color for nodes)
    * If the name begins with "cluster", the nodes and edges within the
      subgraphs are drawn together (within a bounding rectangle). 


J'espère que çà t'orientera vers des tutoriaux plus complets...

Samuel




> Salut,
>
> Je joue un peu avec graphviz et j'ai une limitation qui m'embête...
>
> digraph diag1 {
>
>    A=[label="label1"];
>    B=[llabel="label2"];

>
>    A -> B;

>
> }
>
> fonctionne très bien.
>
> Je peux ainsi personnaliser mon graphe en dehors de la définition du
> graphe lui-même, laissant à ce dernier le minimum de pollution (pour
> les labels de branches par exemple).
>
> C'est bien.
>
> Maintenant, j'ai plein de nœuds avec des propriétés semblables (même
> polygone, même style, même couleur) et ce, pour plusieurs nœuds du
> graphe.
>
> Une solution bourrine consiste à ajouter ces propriétés à la suite des
> labels en-tête du graphe mais :
>
> - on perd en lisibilité
> - la duplication d'une propriété (i.e du code) est mal car ça conduit
> fatalement à un bogue un jour.
>
> Je voudrai donc pouvoir faire
>
>
> digraph diag2 {
>
>    prop1 [shape=box3d, style=filled];
>    prop2 [shape=box,    color=red];

>
>    A=[label="label1", prop1];
>    B=[llabel="label2", prop2];

>
>    A -> B;

>
> }
>
> Mais « ça ne fonctionne pas ».
>
> Est-ce qu'il y a un truc ou tout simplement est-ce que ce n'est pas
> possible ?
>
> Merci d'avance,
>
> PK
>