[[https://graphviz.gitlab.io/pub/graphviz/stable/SOURCES/graphviz.tar.gz|Code source]] {{ :prog:graphviz:graphviz-2.43.20200426.2041.exe |Archive v2.43.20200426.2041}} =====Base===== ====Graphique==== Tutoriel de base : [[https://www.graphviz.org/pdf/dotguide.pdf|Drawing graphs with dot v2015]] {{ :prog:graphviz:dot:dotguide_v2015.pdf |Archive}} Graphique de base : digraph A { } ====Nœud==== ^ Option ^ Description ^ | ''label=%%"XXX"%%'' | Retour à la ligne avec un alignement : ''\n'' : centré, ''\l'' : gauche, ''\r'' : droite. | | ''shape='' | [[https://www.graphviz.org/doc/info/shapes.html#polygon|Polygones]] | | ''style='' | [[https://www.graphviz.org/doc/info/attrs.html#k:style|Style]] | | ''fillcolor='' | Couleur ou ''%%"#RRVVBB"%%'' | Il n'est pas possible de mettre plusieurs nœuds dans un même nœud. Mais c'est possible de faire quelque chose de proche avec un ''subgraph''. Pour dessiner les contours d'un ''subgraph'', il faut l'appeler ''cluster_'' suivi d'un numéro. digraph G { subgraph cluster_0 { Node1; Node2; } } ====Connexion==== Le sens de la connexion va indiquer l'ordre des nœuds conformément au sens de ''rankdir''. Noeud1 -> Noeud2 ^ Option ^ Description ^ | ''dir=forward%%|%%back'' | Si le sens de la flèche n'est pas bonne mais que la position des nœuds l'est, ''back'' va inverser le sens de la flèche. | | ''arrowtail='' \\ ''arrowhead='' | [[https://www.graphviz.org/doc/info/attrs.html#k:arrowType|Forme de l'extrémité du trait]] | | ''headlabel=%%""%%'' \\ ''taillabel=%%""%%'' | Label au début et en fin de la flèche de connexion. | | ''labelangle=XX'' \\ ''labeldistance=YY'' | Décalage en coordonnée polaire du label. | | ''style='' | [[https://www.graphviz.org/doc/info/attrs.html#k:style|Style]] | ====Disposition==== Par défaut, la seule contrainte des nœuds est la direction du haut vers le bas. ^ Mot clé ^ Description ^ | ''rankdir=%%TB|BT|RL|LR%%'' | Direction générale des nœuds (top, bottom, right, left). | | ''rank=%%same|min|max%%'' \\ ''newrank=true'' | Pour forcer des nœuds à être au même niveau ou forcer un ou plusieurs nœuds à une extrémité \\ Il faut mettre ''newrank'' pour que le tri marche sur des ''subgraph'' entier. | ===Exemples=== Mettre deux nœuds au même niveau : { rank = same; Connector1; Connector2; } ====subgraph==== ^ Option ^ Description ^ | ''style='' | [[https://www.graphviz.org/doc/info/attrs.html#k:style|Style]] | | ''bgcolor=white'' | Couleur du fond du graphe. | =====UML===== Pour dessiner des graphiques proches de l'UML. [[http://www.ffnn.nl/pages/articles/media/uml-diagrams-using-graphviz-dot.php|UML Diagrams Using Graphviz Dot]] {{ :prog:graphviz:dot:forever_for_now_-_uml_diagrams_using_graphviz_dot_2020-04-29_8_32_22_pm_.html |Archive du 01/04/2006 le 29/04/2020}} ====Les formes==== node [ shape = record; ] Un paramètre ''shape'' à ''record'' permet de faire des tableaux. Le symbole ''|'' rajoute une barre verticale ou horizontale et le couple de symbole ''{'' et ''}'' inverse le sens de la barre insérée par le symbole ''|''. [[https://www.graphviz.org/doc/info/shapes.html#record|Exemple de record]]. ====Nœuds==== Animal [ label = "{Animal|+ name : string\l+ age : int\l|+ die() : void\l}"; ]