Petit tour des outils de visualisation libres

Posté par (page perso) . Modéré par Nÿco.
Tags :
30
10
mai
2010
Audiovisuel
Les outils libres de visualisation d'informations ou de données existent, mais ne sont pas forcément très connus. Je souhaite, via cette dépêche, les mettre en avant et j'espère que les lecteurs de LinuxFr.org sauront les utiliser pour créer de jolies représentations de données pertinentes.

Je me suis donc attaché à présenter dix outils :
  • Graphviz
  • Large Graph Layout
  • Circos
  • IOGraph
  • Code Swarm
  • Gource
  • Gephi
  • Processing
  • Processing.js
  • Nodebox 2

À ce sujet, je vous recommande chaudement la lecture de l'article de LWN.net sur la visualisation des projets et communautés Open Source.

Graphviz

Graphviz est une suite d'outils qui permettent de dessiner des graphes et des réseaux à partir d'une description textuelle (licence CPL). Développé dans les laboratoires d'AT&T, Graphviz offre maintenant nombre de possibilités : export dans une trentaine de formats (dont SVG, PNG et PDF), utilisation de formes personnalisées, possibilités d'avoir plusieurs couches de dessins, ou encore manipuler Graphviz comme une bibliothèque.

Vous pouvez voir ce que donne Graphviz en allant consulter sa galerie en ligne ou en jouant avec Canviz.

Large Graph Layout

Large Graph layout (ou LGL pour les intimes) a été à l'origine développé pour répondre au besoin de rendre accessible la visualisation et l'exploration de grands réseaux biologiques (licence GPL). LGL utilise la bibliothèque de graphes de Boost pour fournir un ensemble d'outils qui vous permettent de définir vos données sous forme d'un graphe, de les manipuler et de les visualiser.

Là, encore, une galerie en ligne est disponible et permet de mieux se rendre compte des possibilités de LGL.

Circos

Circos est un troisième outil qui prend en entrée une description textuelle de données et sort de jolis graphes (licence GPL). Sa particularité est d'être spécialisé dans les rendus circulaires. À l'origine, il a été développé pour visualiser les données du génome comme l'alignement ou les variations structurelles. Il est cependant devenu de plus en plus générique, allant jusqu'à être utilisé pour montrer les relations entre les personnages de la série Lost.

Les deux outils précédents sont très simples à mettre en oeuvre, mais leurs rendus sont parfois un peu austère. Circos est probablement plus compliqué à prendre en main, mais son rendu est de toute beauté, et les formes circulaires sont un excellent moyen de délivrer une grande quantité d'informations en peu d'espace.

Les exemples montrent que Circos a été utilisé par des revues scientifiques pour faire leurs couvertures, ainsi que par Wired et le New York Times.

IOGraph

IOGraph suit les mouvements de votre souris et en dessine le parcours. L'idée est que vous lancez IOgraph, puis travaillez normalement, et à la fin, vous pouvez admirer une jolie image de ce que vous avez fait à la souris.

Il est possible de voir quelques exemples d'utilisation sur Flickr.

Code Swarm

En suivant la gestion de versions d'Eclipse, PostgreSQL, Apache ou Python, Michael Ogawa a mis au point un modèle graphique de visualisation chronologique de l'élaboration d'un logiciel libre. Il appelle cela « code swarm » (licence GPL) que l'on pourrait traduire par "essaim de code". Le résultat est assez étonnant et se présente sous la forme d'une animation vidéo où l'on voit fichiers, documents et auteurs apparaître puis éventuellement disparaître au gré de leurs contributions dans le temps.

Plusieurs vidéos sont visibles en ligne. Benoît Sibaud a également utilisé code swarm pour créer des vidéos visualisant l'évolution des données et du SVN de LinuxFr.org.

Gource

Gource (licence GPL) fonctionne de manière similaire à code swarm : il prend l'historique d'un dépôt versionné, et le transforme en une animation vidéo sous forme d'arbre animé. La racine, le répertoire principal du projet, est placée au centre. Les répertoires apparaissent comme des branches avec les fichiers comme feuilles. Les développeurs sont également affichés en train de travailler sur cet arbre en fonction de leurs contributions au projet.

On ne déroge pas à la règle : les captures d'écran et vidéos restent le meilleur moyen de comprendre de quoi est capable gource.

Gephi

Gephi est une plateforme interactive pour les personnes qui souhaitent explorer et comprendre les graphes (licence GPL). C'est donc une sorte de Photoshop pour les données, où l'utilisateur peut manipuler la structure de ses données, changer les couleurs et formes pour révéler des propriétés cachées.

Une vidéo d'introduction à Gephi est disponible, ainsi que de nombreux cas d'utilisation.

Notons que Gephi a été retenu pour le Google Summer of Code, avec six étudiants :
  • André Panisson - Graph Streaming API ;
  • Antonio Patriarca - Moteur d'ombrage ;
  • Cezary Bartosiak - Attributs dynamiques et statistiques ;
  • Christopher Kelvin Lee - Force-Directed Edge Bundling ;
  • Martin Škurla - Prise en charge de Neo4j dans Gephi ;
  • Yi Du - Import direct depuis les réseaux sociaux.
Enfin, je souhaite mettre en avant le travail de Franck Cunny sur Github Explorer : il a utilisé Gephi pour produire un poster et plusieurs graphes à partir de données venant de github.

Processing

Processing est un langage Open Source basé sur java (licence GPL/LGPL), il permet de scripter des animations 2D/3D de façon très intuitive. Initialement, il était destiné aux artistes et designers pour esquisser des idées sous forme de code, mais il s'est étendu pour devenir une solution plus complète, maintenant composée de :
  • Un environnement de développement intégré ;
  • Une collection de fonctions appelée l'API « Core », ainsi que des bibliothèques additionnelles qui répondent à des besoins spécifiques (dessiner avec OpenGL, enregistrer des rendus complexes en PDF, etc.) ;
  • Une syntaxe de langage, très proche du Java, mais avec quelques modifications ;
  • Une communauté regroupée autour du site http://processing.org/.
Vous pourrez trouver de nombreux exemples en ligne.

Processing.js

Processing.js est un portage de Processing en javascript (licence MIT). Il repose sur la balise HTML5 Canvas et présente quelques rares différences avec Processing.

Vous pouvez trouver des exemples ou jouer en ligne avec Sketch, un éditeur en ligne qui utilise Bespin, jquery et Processing.js.

Nodebox 2

Nodebox 2 est un logiciel qui permet de créer des représentations artistiques en suivant une approche procédurale (licence GPL). De ce que j'en ai compris, on écrit des bouts de code en python qui forment des blocs, puis on assemble ces blocs pour faire de l'art. Je vous laisse le soin de suivre le tutoriel pour créer votre premier script Nodebox.

Note finale

Si vous connaissez d'autres logiciels de visualisation, n'hésitez pas à en parler dans les commentaires. Ou mieux, proposez une dépêche pour les présenter.
  • # On peut citer en plus

    Posté par (page perso) . Évalué à 5.

    Vous pouvez ajouter tulip http://tulip.labri.fr/TulipDrupal/ développé à Bordeaux. Il se veut très efficace pour gérer des grands graphes, en évitant beaucoup de redondances en mémoire. Beaucoup d'extensions sont possibles via des plugins et une fonctionnalité à mon avis très intéressante pour une utilisation est de lier l'affichage des statistiques sur le graphe et l'affichage du graphe : si je repère par exemple sur une courbe un point qui me semble intéressant, je clic dessus et ça le sélectionne sur le graphe, permettant une exploration plus fine que les stats d'un coté, le graphe de l'autre. C'est du C++, ça se compile bien sous linux,

    Enfin, il y a guess, http://graphexploration.cond.org/ qui a le gros défaut de n'être plus trop maintenu. Il marche assez bien, et sa grosse qualité est le coté scriptable. En plus de la fenêtre d'affichage du graphe, il y a une petite console python qui permet de manipuler les données. Aussi général que soient les autres outils, cette petite fenêtre et sa souplesse manque souvent terriblement dès qu'on sort des sentiers battus (qui sont assez rares dans le domaine).
  • # pour être plus précis

    Posté par (page perso) . Évalué à 10.

    Pour être plus précis, ce que tu nous offres est un « Petit tour des outils de visualisation libres » pour les graphes.

    Avec ton titre et ton chapeau, je m'attendais en premier lieu à un revue des outils de tracé de graphiques et diagrammes statistiques.

    Ceci dit, ça n'en est pas moins intéressant :-)

    Merci
  • # VTK

    Posté par (page perso) . Évalué à 4.

    The Visualization Toolkit, en C++. Pas mal pour la 3D.
  • # Stats

    Posté par . Évalué à 2.

    En visualisation, en dehors des graphes, y'a des outils sympa basés sur R, par exemple http://had.co.nz/ggplot2/

    Voir aussi: http://www.drewconway.com/zia/?p=1614

    Sinon j'avais été assez bluffé par nodebox avec les illustrations de http://samizdat.cc/cyoa/#/gallery
  • # IOGraph

    Posté par . Évalué à 2.

    IOGraph a l'aire vraiment simpas. Je pense qu'il permet de voir d'une autre manière l'ergonomie des interfaces en voyant comment est manipulée la souris. Ce qu'il manque c'est une version 3D pour visualiser en fonction du temps et donc de la vitesse.

    Sinon j'aime bien dans l'idée Code Swarm et Gource, même si je ne les ai jamais testés.

    Les logiciels sous licence GPL forcent leurs utilisateurs à respecter la GPL (et oui, l'eau, ça mouille).

  • # Merci

    Posté par (page perso) . Évalué à 2.

    Alors là ça m'a impressionné !

    Surtout Code Swarm, Gource et Gephi !

    J'ai vu qu'avec IOGraph certains font des œuvres d'art (je l'ai mis en route, j'espère que ce sera joli ;) ).

    Processing.js a fait geler mon Firefox 3.6...

    En tout cas merci pour cette dépêche qui a une belle place dans mes marques-page.

    « En fait, le monde du libre, c’est souvent un peu comme le parti socialiste en France » Troll

  • # La beauté scientifique

    Posté par . Évalué à 3.

    C'est vraiment un très bon article. Cela nous fait découvrir des choses méconnues mais au final terriblement Artistiques !
    Je sens que je vais passer encore pas mal de temps rien qu'à visualiser les exemples issus de ces projets.
  • # DAVIX

    Posté par (page perso) . Évalué à 1.

    Il y a aussi DAVIX qui est une compilation d'outils d'analyse et de visualisation de données. Le manuel contient une liste détaillée avec des exemples pour chaque outil :
    http://82.197.185.121/davix/release/davix-manual-1.0.1.pdf
    http://davix.secviz.org

    Une utilisation de Graphviz que j'apprécie beaucoup est la visualisation de graphes d'appels statiques générés avec egypt qui se base sur gcc -dr : http://www.gson.org/egypt/

    pertinent adj. Approprié : qui se rapporte exactement à ce dont il est question.

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.