Graphviz est fait pour ça !
C'est un ensemble de plusieurs programmes.
dot convient pour les arborescences du genre de celles que tu cherches à réaliser.
Le rendu est obtenu en rédigeant un script déclaratif des nœuds (node) et des arcs (edges) puis en exécutant le programme
dot prenant ce script pour argument.
Voici un exemple simple Les noeuds sont nommés et l'aspect est modifié par des attributs placés entre [ ]
digraph est un mot clé pour déclarer un graphe orienté. rank=same pour forcer les nœuds au même niveau.(ils le seraient par défaut dans cet exemple)
digraph MonGraph {node[shape=box,color=red];
edge [color=green]
A [label="Entrée des données\nècrire une rédaction",style=bold];
B [label="Nulla posuere\nPhasellus neque orci, porta a, aliquet quis, semper a, massa. "];
C [label="Nulla posuere.\nNunc eleifend leo vitae magna. "];
D [label="Nullam rutrum.\nIn id erat non orci commodo lobortis."] ;
{rank=same B;C;D}
E [Label="Nullam libero mauris, \n Cras placerat accumsan nulla."];
A->B,C,D ;
B->E[label="Et la suite",style="dashed"];
}
Le script est à enregistrer dans un fichier texte, par exemple test.dot . L'image est ensuite obtenue par une commande, par exemple pour une image png
dot -Tpng test.dot -o test.png
Il existe un mode dot d'Emacs qui permet d'éditer le script de le compiler et de le visualiser par des commandes tapées au clavier.