45 votes

Placement des nœuds GraphViz et Rankdir

Je vais avoir une très bonne chance avec graphviz et ont été en mesure de faire presque tous les graphique dont j'ai besoin. Je suis en train d'essayer de reproduire ce:

http://en.wikipedia.org/wiki/File:ICS_Structure.PNG

aussi fidèlement que je peux. La partie inférieure du graphique de l'ensemble des flux du haut vers le bas et j'ai mis fonctionne bien. Ce que je n'ai pas été en mesure de faire est de placer les 3 premiers enfants ci-dessous à droite "Commandant De L'Intervention". Ils branche de gauche et de droite. Plus à noter la manière dont les bords sont partagés dans le top 8 nœuds. Est-ce possible avec dot? Je peux faire face à tout d'autre mais pas les noeuds. Quelqu'un peut-il me donner un indice pour résoudre ce problème?

129voto

marapet Points 19796

Deux techniques utiles pour reproduire la disposition des graphiques sont:

  • Noeuds invisibles
  • Contraintes de classement

Voici un essai rapide pour les nœuds supérieurs:

 digraph g{
ranksep=0.2;

node[shape=box3d, width=2.3, height=0.6, fontname="Arial"];
n1[label="Incident Commander"];
n2[label="Public Information\nOfficer"];
n3[label="Liaison Officer"];
n4[label="Safety Officer"];
n5[label="Operations Section"];
n6[label="Planning Section"];
n7[label="Logistics Section"];
n8[label="Finance/Admin. Section"];

node[shape=none, width=0, height=0, label=""];
edge[dir=none];
n1 -> p1 -> p2 -> p3;
{rank=same; n2 -> p1 -> n3;}
{rank=same; n4 -> p2;}
{rank=same; p4 -> p5 -> p3 -> p6 -> p7;}
p4 -> n5;
p5 -> n6;
p6 -> n7;
p7 -> n8;
}
 

Et voici le résultat:

nœuds supérieurs de la disposition des points

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X