2010-02-15 7 views
18

Sto cercando una libreria Java o Python in grado di eseguire il rendering di grafici in linguaggio Dot come file immagine. Il problema è che ho bisogno di una libreria che posso utilizzare su Google App Engine. Fondamentalmente sto cercando una libreria in grado di convertire la descrizione del testo di un grafico diretto in un'immagine del grafico.Libreria per il rendering di grafici diretti (simili a graphviz) su Google App Engine

Ad esempio:

Covert questa lista bordo:

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

In questa immagine:

example image

Ho usato Graphviz per questo esempio, ma so che non è possibile per me usarlo con Google App Engine.

risposta

17

Canviz è quello che stai cercando: è una libreria JavaScript per disegnare grafici Graphviz su una tela del browser web. Funziona con most browsers.

Utilizzando Canviz ha dei vantaggi per l'applicazione Web nel corso di generazione e l'invio di immagini bitmap e mappe immagine al browser:

  • Il server ha solo bisogno di avere Graphviz generare testo xdot; questo è più veloce della generazione di immagini bitmap.
  • Solo il testo xdot deve essere trasferito nel browser; questo è più piccolo dei dati di immagine binaria e, se il browser lo supporta (il che più fa), il testo può essere compresso con gzip o bzip2.
  • Il browser Web esegue il disegno, non il server; questo riduce il carico del server.
  • L'utente può ridimensionare il grafico senza dover coinvolgere il server; questo è più veloce di quando il server disegna e invia il grafico in una dimensione diversa.

per vederlo in azione, look here.

+3

Impressionante! Ho appena lavorato su GAE. Grazie! – rsideb

0

Non penso che ci sia una libreria Python così pura, il meglio che puoi fare è usare NetworkX, può disegnare usando matplotlib o pygraphviz. Forse puoi modificare il codice matplotlib di networkx per disegnare sul lato server, here è il codice

Un altro problema è che il motore di app di google non ha API di disegno, ma puoi semplicemente usare SVG per generare tali grafici o possono essere grafici di google Le API hanno qualcosa già lì.

0

Si potrebbe dare un'occhiata al flash basato su perfuse project se è solo necessario visualizzare un grafico e non averlo incorporato come immagine è accettabile.

Hanno alcune applicazioni di esempio della libreria come questa Dependency Graph.

12

API Google Charts now supports GraphViz experimentally. (Si noti che l'intero progetto Image Charts è ufficialmente deprecato.)

+2

Fantastico! Grazie per aver menzionato questo. – rsideb

+0

Questo non è più vero. Questa API è stata dichiarata obsoleta – Michael