2009-05-07 33 views
20

Estoy buscando una biblioteca para dibujar gráficos ASCII (para usar en una consola) con Python. El gráfico es bastante simple: es solo un diagrama de flujo para las tuberías.Gráfico ASCII de Python Dibujo

Vi NetworkX e igraph, pero no vi una forma de enviar a Ascii.

¿Tiene experiencia en esto?

¡Muchas gracias!

Patrick

EDIT 1: realidad me encontré con una biblioteca haciendo lo que necesito, pero es en Perl Graph::Easy. Podría llamar al código de Python, pero no me gusta demasiado la idea ... sigue buscando una solución de Python :)

Respuesta

1

Cuando dices 'simple network graph in ascii', ¿te refieres a algo como esto?

.===. .===. .===. .===. 
| a |---| b |---| c |---| d | 
'===' '===' '---' '===' 

sospecho que hay probablemente mejores maneras de mostrar cualquier información que es que usted tiene que tratar de dibujar en la consola. Si es sólo un oleoducto, ¿por qué no imprimir:

a-b-c-d 

Si está seguro de que esta es la ruta, una cosa que podría intentar sería la de generar un gráfico decente utilizando Matplotlib y luego enviar el contenido a una de the many image-to-ascii converters que puedes encontrar en la web.

+0

El gráfico puede incluir bifurcaciones y combinaciones (el flujo de la tubería puede bifurcarse y luego unirse nuevamente). Por lo tanto, una representación gráfica de lo que está sucediendo sería agradable. – Patrick

+1

Fundamentalmente, creo que sería mejor que intentes generar los datos en un archivo y luego procesarlos usando otra herramienta como Willi sugirió en lugar de intentar dibujar en una consola. ¿Tal vez podría generar el formato de punto requerido para graphviz y conectar la salida de la consola a algo que busque las secciones de puntos para dibujar sus gráficos? –

+0

Sí, creo que buscaré esa solución. – Patrick

1

No está directamente basado en Python, pero debería echarle un vistazo al modo de artista de emacs

puede controlar emacs de pitón con pymacs, o puede tomar un vistazo al código Lisp y sacar algo de inspiración.

+0

En realidad, esto hace algo similar que estoy buscando. Pero me gustaría ser independiente de emacs o cualquier otro IDE. Y prefiero no escribir mi propia biblioteca de dibujo gráfico si es posible de algún modo. – Patrick

0

Para dibujar redes, pydot podría ser una solución más conveniente que matplotlib. Está basado en graphviz (gallery).

+0

La biblioteca se ve muy bien. Pero no vi una forma de exportar los gráficos a ascii/console. – Patrick

3

ascii-plotter podría hacer lo que quiera ...

+1

Diferente tipo de gráfico. –

Cuestiones relacionadas