dot (Graphviz)

Fiche logiciel validé
  • Création ou MAJ importante : 31/03/11
  • Correction mineure : 12/02/13
Mots-clés
Pour aller plus loin

dot (Graphviz) : pour dessiner des graphes

Description
Fonctionnalités générales

Dot est à la fois le nom d'un langage et d'un utilitaire de la suite Graphviz, développé par AT&T. Le langage permet de décrire de façon simple un graphe (une liste de nœuds, une liste d'arcs pour relier les nœuds). L'utilitaire lit un fichier au format dot, le compile, et écrit un fichier graphique représentant le graphe.
Des attributs permettent de décrire les propriétés des nœuds et des arcs (comme la couleur, les textes associés, les polices de textes, la forme des nœuds, le graphisme des arcs, la transparence ...).

Les nœuds des graphes sont organisés de manière hiérarchiques (en couches).
L'algorithme de dessin repère l'ensemble des arcs qui ont la même direction (de haut en bas, de gauche à droite) et minimise (par programmation linéaire) les croisements entre arcs et leur longueur.
De nombreuses options permettent de modifier le comportement de cet algorithme.

Interopérabilité

L'entrée de dot est un simple fichier texte, mais il y a beaucoup d'interfaces qui permettent d'utiliser dot (et autres outils de Graphviz) depuis perl, java, python, matlab, R...
Plusieurs formats sont possibles pour les fichiers produits (ps, pdf, jpeg, svg, tiff...); voir http://www.graphviz.org/doc/info/output.html pour une liste complète des formats de sortie.

Contexte d'utilisation dans mon laboratoire/service

Graphviz est par exemple utilisé comme composant de MuPAD-Combinat ou de Sage-Combinat pour le tracé de graphes (graphes cristallins, système des catégories et autres).
Mais l'utilisation des graphes est universelle, et on trouve facilement des exemples de graphes dot pour la représentation d'un réseau informatique, celle d'automates, les relations entre cellules, etc.

Limitations, difficultés, fonctionnalités importantes non couvertes

Le programme dot2tex développé par Kjell Magne Fauske permet d'intégrer des formules mathématiques complexes en LaTEX dans les labels des nœuds et des arêtes.

Environnement du logiciel
Distributions dans lesquelles ce logiciel est intégré

AT&T produit des paquets officiels pour des versions de Linux : Debian, Fedora, Ubuntu ; pour Windows et Mac OS.
Il y a aussi des versions pour FreeBSD, Solaris et autres : http://www.graphviz.org/Resources.php

Plates-formes

Toutes les plateformes.

Logiciels connexes

Dot est une partie de Graphviz, qui est un ensemble d'utilitaires pour visualiser et dessiner des graphes. Citons également l'utilitaire dotty, qui permet de visualiser directement un graphe en langage dot.

Le programme dot2tex développé par Kjell Magne Fauske permet d'intégrer des formules mathématiques complexes en LaTeX dans les labels des nœuds et des arcs.

Des informations sur d'autres logiciels et ressources externes qui completent parfois graphviz : http://www.graphviz.org/Resources.php

PyGraphviz (interface avec python) : http://networkx.lanl.gov/pygraphviz/

Autres logiciels aux fonctionnalités équivalentes
Environnement de développement
Type de structure associée au développement
Eléments de pérennité
Références d'utilisateurs institutionnels

La communauté est très active, et en plus dot est utilisé dans de nombreux laboratoires et interagit avec beaucoup de logiciels.

Environnement utilisateur
Liste de diffusion ou de discussion, support et forums
Documentation utilisateur

http://www.graphviz.org/Documentation.php

La documentation principale est en anglais, mais il est possible de trouver de l'aide en français ; voir par exemple
http://www.linuxfocus.org/Francais/August2005/arti...

Des informations sur des algorithmes et la theorie : http://www.graphviz.org/Theory.php

Dot a aussi une page Wikipedia : http://en.wikipedia.org/wiki/DOT_language

Commentaires

Rgraphviz

Rgraphviz : graphes avec Graphviz en R
http://www.bioconductor.org/packages/release/bioc/...

Yacclib

Yacclib est une petite bibliothèque Objective-Caml pour lire et écrire des fichiers OCamlyacc (.mly). La bibliothèque permet aussi de générer un graphe dot à partir de ces fichiers.
http://brion.inria.fr/~guesdon/yacclib.fr.html

Odot

Odot est une petite bibliothèque Objective-Caml pour lire et écrire des fichiers dot Graphviz. Un module additionnel permet d'afficher ces graphes dans une boîte Lablgtk2 et de gérer les clics de souris sur les noeuds du graphe. Cette bibliothèque fait partie de Cameleon2 mais peut être installée séparément.
http://home.gna.org/cameleon/odot.fr.html