Schéma fonctionnel avec dot / graphviz
J'aimerais mettre en place des maquettes avec dot:
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.
- 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.
- Est-il possible de mettre le bord des étiquettes constamment au-dessus ou en dessous du bord?
- 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
Vous devez vous connecter pour publier un commentaire.
Est-ce à vous lancer?
Notez que j'ai utilisé les espaces insécables comme un coup de façon à obtenir l'alignement (je pense, je n'ai C-kEspaceEspace dans vim, conduisant à l'Hex
00a0
char)Vous pouvez également utiliser du HTML à l'intérieur de l'étiquette de définitions, de sorte que vous pouvez utiliser les polices, les couleurs et créer des "spacers": http://www.graphviz.org/doc/info/shapes.html#html
Je suppose que l'alignement des étiquettes serait plus facile avec HTML nœuds.