2010-02-15 7 views
18

Je cherche une bibliothèque de Java ou de Python qui peut rendre des graphiques dans la langue de point comme dossier d'image. Le problème est que j'ai besoin d'une bibliothèque que je peux utiliser sur Google App Engine. Fondamentalement je cherche une bibliothèque qui peut convertir la description textuelle d'un graphique dirigé en une image du graphique.Bibliothèque pour rendre des graphiques dirigés (semblable à graphviz) sur Google App Engine

Par exemple:

Covert cette liste de bord:

[A,B] 
[B,C] 
[A,C] 
[C,D] 

Dans cette image:

example image

je Graphviz pour cet exemple, mais je sais que ce n'est pas possible pour moi de l'utiliser avec Google App Engine.

Répondre

17

Canviz est ce que vous recherchez: c'est une bibliothèque JavaScript pour dessiner des graphiques Graphviz dans un canevas de navigateur Web. Cela fonctionne avec most browsers.

L'utilisation Canviz présente des avantages pour votre application web sur la génération et l'envoi d'images bitmaps et imagemaps au navigateur:

  • Le serveur n'a besoin que d'Graphviz générer du texte xdot; c'est plus rapide que de générer des images bitmap.
  • Seul le texte xdot doit être transféré au navigateur; c'est plus petit que les données d'image binaires, et, si le navigateur le supporte (ce que font le plus), le texte peut être compressé en gzip ou en bzip2.
  • Le navigateur Web exécute le dessin, pas le serveur; Cela réduit la charge du serveur.
  • L'utilisateur peut redimensionner le graphique sans avoir à impliquer le serveur; c'est plus rapide que d'avoir le serveur dessiner et envoyer le graphique dans une taille différente.

Pour le voir en action, look here.

+3

Impressionnant! Je l'ai juste travaillé sur GAE. Merci! – rsideb

0

Je ne pense pas qu'il existe une telle bibliothèque python pure, le mieux que vous pouvez faire est d'utiliser NetworkX, il peut dessiner en utilisant matplotlib ou pygraphviz. Peut-être que vous pouvez modifier le code matplotlib networkx pour dessiner côté serveur, here est le code

Un autre problème est google app engine n'a pas d'API de dessin, mais vous pouvez simplement utiliser SVG pour générer de tels graphiques ou peut-être google charts API a déjà quelque chose là-bas.

0

Vous pouvez jeter un oeil au flash basé perfuse project si juste besoin d'afficher un graphique et ne pas l'avoir incorporé comme une image est acceptable.

Ils ont quelques exemples d'applications de la bibliothèque telles que cette Dependency Graph.

12

API Google Charts now supports GraphViz experimentally. (Notez que l'ensemble du projet Image Charts est officiellement obsolète.)

+2

Génial! Merci d'avoir mentionné cela. – rsideb

+0

Ce n'est plus vrai. Cette API a été abandonnée – Michael