Schéma fonctionnel avec dot / graphviz

J'aimerais mettre en place des maquettes avec dot:

Schéma fonctionnel avec dot /graphviz

Jusqu'à présent, j'ai ceci:

digraph G {
graph [rankdir = LR, splines=ortho]

  unit [shape=box, width = 2, height = 10];

  more_different_unit [shape=box, height=4];
  other_unit [shape=box, height=4];


  unit -> other_unit [label = "foo"];
  unit -> other_unit [label = "bar"];
  unit -> other_unit [label = "bar"];
  unit -> other_unit [label = "bar"];
  unit -> other_unit [label = "bar"];
  unit -> other_unit [label = "bar"];
  unit -> more_different_unit [label = "bar"];
  unit -> more_different_unit [label = "bar"];
  unit -> more_different_unit [label = "bar"];
  unit -> more_different_unit [label = "bar"];
  unit -> more_different_unit [label = "bar"];
  unit -> more_different_unit [label = "bar"];
}

Je le compiler comme suit:

dot -Gsplines=aucun test.gv | neato -n -Gsplines=ortho -Tpng -otest.png

Qui me fait fermer, mais il ya quelques choses que je voudrais savoir.

  1. Comment puis-je obtenir des blocs à gauche et à droite de Toto, non seulement le droit? Je n'ai pas été capable de trouver la réponse encore.
  2. Est-il possible de mettre le bord des étiquettes constamment au-dessus ou en dessous du bord?
  3. Comment puis-je aligner la droite noeuds à gauche, et la gauche nœuds de droit? Une possibilité serait de faire la même largeur, ce qui serait d'accord.

Merci!!

Mise à JOUR:

Basé sur la accepté de répondre, je suis en train de faire la suite de ce qui est précisément ce dont j'avais besoin, a de nouveau généré par point les canalisations de neato, comme mentionné ci-dessus:

digraph G {
    graph [rankdir = LR, splines=ortho];

    node[shape=record];
    Bar[label="Bar", height=2];
    Foo[label="Foo", height=4];

    Bew[label="Bew", height=2];
    Gate[label="Gate", height=2];

    Bar -> Foo [label="Bar2Foo"];
    Bar -> Foo [label="Bar2Foo"];
    Bar -> Foo [label="Bar2Foo"];

    Foo -> Bew [label="Foo2Bew"];
    Foo -> Bew [label="Foo2Bew"];
    Bew -> Foo [label="Bew2Foo"];


    Foo -> Gate [label="Foo2Gate"];
    Foo -> Gate [label="Foo2Gate"];
}

source d'informationauteur Christoph