2010-06-30 3 views
5

En faisant du développement de logiciel, je rencontre périodiquement le besoin de dessiner des graphiques pour mon propre usage. Parfois ils illustrent des relations dans une BD, parfois ils illustrent des relations de fichiers de code ou de classes, d'autres fois il y a d'autres objets ... De toute façon, le besoin de base est le même - j'ai un ensemble de nœuds que je voudrais pour disposer proprement, ajoutez quelques couleurs/textes/styles informatifs et éventuellement imprimez-le à la fin (sur plusieurs pages si nécessaire).Quels bons outils de mise en page, d'édition et de dessin de graphique sont là?

Existe-t-il un outil qui me permettrait de le faire facilement? Les caractéristiques que je m'attendais:

  • Importer des informations de nœud/bord de base à partir d'un fichier (les données brutes que j'ai extraites du DB/code/quoi que ce soit);
  • Dispose automatiquement certains ou tous les nœuds dans le graphique;
  • Permet d'ajuster manuellement les emplacements de nœuds et de bords;
    • Les fonctions de manipulation de groupes de nœuds (relocalisation, rotation, échelle) seraient également très intéressantes;
  • Capacité de manipuler les aspects visuels de l'image - changer les lignes, les couleurs et les polices; ajouter des textes et des images arbitraires (en les attachant peut-être aux noeuds/arêtes);
  • Possibilité de modifier le contenu des nœuds (parfois je n'ai besoin que d'un simple texte, parfois d'une petite table, parfois d'une liste à puces, etc.)
  • Enregistrer/charger/imprimer (y compris sur plusieurs pages avec des zones de chevauchement pour le collage ensemble)/exporter vers l'image (vecteur et raster avec anti-aliasing).

Ajouté:Here est un graphique exemple j'ai essayé de visualiser plus récemment. J'aimerais obtenir une mise en page utilisable qui nécessite un ajustement minimal avant de pouvoir être imprimée.

Répondre

3

Graphviz est depuis longtemps populaire. J'aime vraiment le moteur de rendu de yEd, que je nourris en GML vers (mais il supporte d'autres formats).

+1

Bonne réponse et question, c'est vraiment utile ... J'aime beaucoup la mise en page de la seconde, trop belle! –

+0

Je viens de les essayer tous les deux sur un petit graphique de dépendances de fichiers PHP (quel fichier inclut quel fichier). Il y avait quelque chose comme 130 fichiers (dont la moitié était indépendante) et autour du même nombre de dépendances. Graphviz les a pratiquement tous alignés, créant un graphique extrêmement large/grand. yEd était un peu mieux, mais ne s'est même pas approché de quelque chose d'utilisable. Je m'attendrais à quelque chose de mieux. –

+1

Je pense que yEd a différents types de mise en page, peut-être en essayer quelques-uns? – Mau

1

Vous pouvez utiliser Cytoscape, c'est un outil de visualisation graphique. J'aime l'agencement dirigé forcé.

1

Je trouve Gephi très agréable, surtout pour deux tâches:

  1. Surfer sur le graphique, à savoir hidding certaines parties, les noeuds mobiles, essayant de comprendre ses propriétés en jouant avec elle.
  2. Rendu pour l'exporter pour une présentation ou un article?

De bons algorithmes de mise en page sont inclus par défaut, et vous pouvez facilement installer des plugins depuis l'outil.

Et si votre objectif est d'obtenir une représentation informative et lisible de votre graphique, vous pouvez envisager d'utiliser hive plots. Description, exemples et outils sont disponibles à partir de this page. L'idée de base est d'utiliser une méthode déterministe (par opposition aux dispositions basées sur la force) pour placer des nœuds, basée sur quelques attributs ou mesures topologiques.La représentation résultante permet de comparer efficacement différents graphes, voire le même graphe considéré à partir de perspectives différentes.

Questions connexes