Graphviz – Software di Visualizzazione Grafica
Visualizzazione grafica
La visualizzazione grafica è un modo di rappresentare le informazioni strutturali come diagrammi di grafici e reti astratte. Il disegno automatico del grafico ha diverse importanti applicazioni nella programmazione, nella progettazione web e di database, nel networking e nelle interfacce visive per molti altri domini.
Graphviz è un software di visualizzazione di grafici open source. Ha diversi programmi di layout grafici principali. Guarda la galleria per alcuni esempi di layout. Dispone inoltre di interfacce grafiche web e interattive e strumenti ausiliari, librerie e collegamenti linguistici.
L’edizione Mac OS X di Graphviz di Glen Low ha vinto due Apple Design Awards nel 2004.
I programmi di layout Graphviz accettano descrizioni di grafici in un semplice linguaggio di testo e creano diagrammi in diversi formati utili come immagini e SVG per pagine Web, Postscript per l’inclusione in PDF o altri documenti; o visualizzano in un browser grafico interattivo. (Graphviz supporta anche GXL, un dialetto XML.)
Graphviz ha molte funzioni utili per diagrammi concreti, come opzioni per colori, caratteri, layout di nodi tabulari, stili di linea, collegamenti ipertestuali e forme personalizzate.
In pratica, i grafici vengono solitamente generati da fonti di dati esterne, ma possono anche essere creati e modificati manualmente, sia come file di testo non elaborati, che in un editor grafico. (Graphviz non era destinato a essere un sostituto di Visio, quindi potrebbe essere frustrante provare ad utilizzarlo in questo modo.)
Tabella di marcia
- dot – rende “gerarchici” o disegni a strati di grafici diretti. L’algoritmo di layout punta i bordi nella stessa direzione (dall’alto verso il basso o da sinistra a destra) e quindi tenta di evitare gli attraversamenti dei bordi e ridurre la lunghezza dei bordi.
- neato – layout “modello primavera”. Questo è lo strumento predefinito da utilizzare se il grafico non è troppo grande (circa 100 nodi) e non si conosce altro a riguardo. Neato tenta di minimizzare una funzione energetica globale, che equivale al ridimensionamento multidimensionale statistico. La soluzione è ottenuta utilizzando la specializzazione dello stress, sebbene sia disponibile anche l’algoritmo Kamada-Kawai più vecchio, che utilizza la discesa più ripida.
- fdp – layout “modello primavera” simile a quelli di neato, ma lo fa riducendo le forze piuttosto che lavorare con l’energia. Fdp implementa l’euristica Fruchterman-Reingold, includendo un solutore multigrid che gestisce grafici più grandi e grappoli non orientati raggruppati.
- sfdp – versione multiscala di fdp per il layout di grafici di grandi dimensioni.
- twopi – layout radiali, dopo Graham Wills 97. I nodi sono posizionati su cerchi concentrici a seconda della loro distanza da un determinato nodo radice. È possibile impostare il nodo radice, o lasciare che lo faccia twopi.
- circo – layout circolare, dopo Six e Tollis 99, Kauffman e Wiese 02. Questo è adatto ad alcuni diagrammi di strutture cicliche multiple, come certe reti di telecomunicazioni.
Visualizzatori
- dotty – un visualizzatore di finestre Unix / X personalizzabile vintage che è stato successivamente trasferito su Microsoft Windows.
- tcldot – estensione del linguaggio di scripting TCL / TK per Graphviz
- Webdot – un servizio WWW con script tcldot per i grafici nei documenti HTML.
- Esiste anche una versione semplificata scritta in perl.
- Grappa – un pacchetto Java per grafici con strutture dati complete di grafici Java
- ZGRViewer – un visualizzatore grafico con zoom basato su SVG per grafici di grandi dimensioni.
- Mac OS X graphviz
Filtri
- gvpr è un editor di stream grafico generico, nello spirito di awk, sed (o pensa a perl se non li conosci).
Esempi di Applicazione
- Documentazione software: bei diagrammi generati automaticamente da doxygen e dot.
- Server Grafico WWW: per un’applicazione WWW di Graphviz, vedere Webdot.
- API Graphviz di Google Charts.
- Canviz, una libreria Javascript canvas HTML5.
Documento originale: https://graphviz.gitlab.io/about/