google engine earth code apps java python google-app-engine graph graphviz

java - earth - Biblioteca para representar gráficos dirigidos(similar a graphviz) en Google App Engine



apps google earth engine (4)

La API de Google Charts ahora admite GraphViz de manera experimental . (Tenga en cuenta que todo el proyecto de Gráficos de imágenes está oficialmente en desuso).

Estoy buscando una biblioteca de Java o Python que pueda representar gráficos en el lenguaje Dot como archivo de imagen. El problema es que necesito una biblioteca que pueda usar en Google App Engine. Básicamente, estoy buscando una biblioteca que pueda convertir la descripción de texto de un gráfico dirigido en una imagen del gráfico.

Por ejemplo:

Convierte esta lista de borde:

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

En esta imagen:

Utilicé Graphviz para este ejemplo, pero sé que no puedo usarlo con Google App Engine.


Lo que está buscando es Canviz : es una biblioteca de JavaScript para dibujar gráficos de Graphviz en el lienzo de un navegador web. Funciona con la mayoría de los navegadores .

El uso de Canviz tiene ventajas para su aplicación web sobre la generación y el envío de imágenes de mapa de bits y mapas de imágenes al navegador:

  • El servidor solo necesita que Graphviz genere texto xdot; Esto es más rápido que generar imágenes de mapa de bits.
  • Solo el texto xdot necesita ser transferido al navegador; es más pequeño que los datos de imágenes binarias y, si el navegador lo admite (como la mayoría), el texto puede comprimirse con gzip o bzip2.
  • El navegador web realiza el dibujo, no el servidor; Esto reduce la carga del servidor.
  • El usuario puede cambiar el tamaño del gráfico sin necesidad de involucrar al servidor; esto es más rápido que hacer que el servidor dibuje y envíe el gráfico en un tamaño diferente.

Para verlo en acción, mira aquí .


No creo que exista una biblioteca Python tan pura, lo mejor que puedes hacer es usar NetworkX , puede dibujar usando matplotlib o pygraphviz. Tal vez pueda modificar el código matplotlib de networkx para dibujar en el lado del servidor, here está el código

Otro problema es que el motor de aplicaciones de Google no tiene ninguna API de dibujo, pero simplemente puede usar SVG para generar dichos gráficos o puede que la API de Google charts ya tenga algo.


Puede echar un vistazo al proyecto de perfuse basado en flash si solo necesita mostrar un gráfico y no tenerlo incrustado como imagen es aceptable.

Tienen algunas aplicaciones de ejemplo de la biblioteca como este gráfico de dependencia .