J'ai une structure de données qui représente un graphe dirigé, et je veux en faire un rendu dynamique sur une page HTML. Ces graphes ne comportent généralement que quelques nœuds, peut-être dix au maximum, et je pense donc que les performances ne seront pas un problème majeur. Idéalement, j'aimerais pouvoir l’associer à jQuery pour que les utilisateurs puissent modifier la disposition manuellement en faisant glisser les nœuds.
Remarque : je ne cherche pas une bibliothèque de graphiques.
Je viens de créer ce que vous recherchez peut-être : http://www.graphdracula.net. C'est du JavaScript avec une mise en page en graphe dirigé, du SVG et vous pouvez même faire glisser les nœuds. Il faut encore le peaufiner, mais il est tout à fait utilisable. Vous créez facilement les nœuds et les bords avec du code JavaScript comme celui-ci :
var g = new Graph();
g.addEdge("strawberry", "cherry");
g.addEdge("cherry", "apple");
g.addEdge("id34", "cherry");
Vous voudrez peut-être jeter un coup d'oeil à d'autres projets, aussi ! Vous trouverez ci-dessous deux méta-comparaisons :
JsVIS était plutôt sympa, mais lent avec des graphes plus grands, et a été abandonné depuis 2007.
prefuse est un ensemble d'outils logiciels permettant de créer de riches visualisations interactives de données en Java. flare est une bibliothèque ActionScript permettant de créer des visualisations qui s'exécutent dans Adobe Flash Player, abandonnée depuis 2012.
Comme l'a mentionné guruz, le [JIT][1] propose plusieurs belles mises en page de graphes/arbres, notamment des visualisations RGraph et HyperTree très attrayantes.
De plus, je viens de mettre en place une implémentation super simple basée sur SVG sur github (pas de dépendances, ~125 LOC) qui devrait fonctionner suffisamment bien pour les petits graphiques affichés dans les navigateurs modernes.