2010-02-20 6 views
5

Escribí una herramienta para encontrar las relaciones de dependencia detrás de un proyecto de Python. Es Gluttony. Lo ejecuto en Plone, el resultado es impresionante. Yo de salida del diagrama con NetworkX, y se ve así: (! Gee Parece que World of Goo)Cómo generar un enorme diagrama de relaciones de dependencia de Plone con Graphviz?

Dependency diagram of Plone, output by Networkx http://python-gluttony.googlecode.com/files/plone_nx.png

Un desastre! No manejé el diseño con Networkx. Es por eso que es un desastre. La herramienta puede generar el archivo de formato Graphviz. Traté de renderizar el diagrama con el comando punto. Uso un comando como este:

dot -Kdot -Tpng -oplone plone.dot 

Obtuve una gran imagen después de un largo tiempo de ejecución, pero el resultado parece incorrecto. No puedo ver nada en la imagen del resultado. Parece un libro blanco, nada en él. ¿Qué pasa? ¿El diagrama es demasiado grande para representarlo? ¿Qué debo hacer para representar un diagrama complejo tan grande?

puedo obtener el resultado correcto desde otro diagrama pequeño, como éste: Dependency diagram of sprox http://python-gluttony.googlecode.com/files/sprox.png

Incluso un esquema mucho más grande se puede representar correctamente, vamos a ver el diagrama de TurboGears2

creo que debe ser divertido para ver la relación de dependencia de un proyecto monstruoso como Plone. También es útil para investigar. Lamentablemente, no puedo generar el diagrama correctamente. ¿Alguien frío me ayuda? Gracias.

Aquí está el archivo en formato Graphviz de Plone: ​​ plone.dot

+0

Si la imagen es grande, su visor de imágenes podría tener problemas. Sé que Crome e IE no pudieron mostrar enormes imágenes graficas que presenté hace unos meses. –

Respuesta

1

Si se puede producir una imagen: Graphviz tiende a crear enormes archivos. Zoom in.

Para mi graphviz regularmente se bloquea en su archivo. Parece que tiene un máximo de 32 kPixels por lado y tu archivo sería más grande, lo que daría como resultado un desbordamiento de enteros.

Intente dividir el archivo en múltiples sub-gráficos (puntos adicionales para usar algoritmos de gráficos para encontrar buenos puntos de separación).

Actualización:

vomité una escritura rápida a split dot files. No es perfecto, pero funciona de manera razonable.

Cuestiones relacionadas