2009-05-07 15 views
20

sto cercando una libreria per disegnare grafici ASCII (per l'utilizzo in una console) con Python. Il grafico è abbastanza semplice: è solo un diagramma di flusso per le condotte.Python ASCII Grafico Disegno

vidi NetworkX e IGRAPH, ma non ha visto un modo di uscita per ascii.

Hai esperienza in questo?

Grazie mille!

Patrick

EDIT 1: in realtà ho trovato una libreria a fare quello che mi serve, ma è in perl Graph::Easy. Potrei chiamare il codice da Python ma non mi piace troppo l'idea ... ancora cercando una soluzione python :)

risposta

1

Quando si dice 'semplice grafico di rete in ascii', vuoi dire qualcosa di simile?

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

ho il sospetto che ci sono modi probabilmente meglio per visualizzare le informazioni a sua è che si deve che cercare di disegnarlo sulla console. Se è solo un oleodotto, perché non solo stampare:

a-b-c-d 

Se sei sicuro che questa è la strada, una cosa che si potrebbe provare sarebbe quello di generare un grafico decente utilizzando Matplotlib e poi inviare il contenuto a uno di the many image-to-ascii converters puoi trovarli sul web.

+0

Il grafico può includere fork e join (il flusso della pipeline può fork e quindi unirsi nuovamente). Quindi una rappresentazione grafica di ciò che sta succedendo sarebbe bella. – Patrick

+1

Fondamentalmente, penso che ti sarebbe meglio servire provare a trasmettere i dati su file e poi elaborarli usando un altro strumento come suggerito da Willi piuttosto che cercare di disegnare su una console. Forse potresti produrre il formato punto richiesto per graphviz e connettere l'output della console a qualcosa che cerchi le sezioni punto per disegnare i tuoi grafici? –

+0

Sì, penso che andrò per una soluzione del genere. – Patrick

1

Non è direttamente basato su Python, ma dovresti dare un'occhiata alla modalità artista di emacs

È possibile controllare emacs in pitone con pymacs, oppure si può prendere uno sguardo al codice Lisp e trarre qualche ispirazione.

+0

Questo in realtà fa qualcosa di simile che sto cercando. Ma mi piacerebbe essere indipendente da emacs o qualsiasi altro IDE. E preferisco non scrivere la mia propria biblioteca di disegno grafico se è possibile in qualche modo. – Patrick

0

Per disegnare reti, pydot potrebbe essere una soluzione più conveniente rispetto matplotlib. È basato su graphviz (gallery).

+0

La libreria è molto bella. Ma non ho visto un modo per esportare i grafici in ascii/console. – Patrick

3

ascii-plotter potrebbe fare quello che vuoi ...

+1

Diversi tipi di grafici. –