Pagine

lunedì 14 giugno 2010

Graphviz, grafi automatici professionali

Premessa

In alcuni ambiti lavorativi, i grafi possono essere estremamente utili.
Si pensi al mondo della programmazione, quando si vuole visualizzare la relazione tra gli oggetti creati in un programma.
Un altro esempio è rappresentato da un organigramma aziendale quando si desidera vedere la gerarchia organizzativa che parte dal consiglio di amministrazione e scende diramandosi fra direzioni, servizi e così via.
Copiando la definizione da wikipedia del termine Grafo: "I grafi sono strutture matematiche discrete che rivestono interesse sia per la matematica che per un'ampia gamma di campi applicativi. In ambito matematico il loro studio, la teoria dei grafi, costituisce un'importante parte della combinatoria; i grafi inoltre sono utilizzati in aree come topologia, teoria degli automi, funzioni speciali, geometria dei poliedri, algebre di Lie. I grafi si incontrano in vari capitoli dell'informatica (ad esempio per schematizzare programmi, circuiti, reti di computer, mappe di siti). Essi inoltre sono alla base di modelli di sistemi e processi studiati nell'ingegneria, nella chimica, nella biologia molecolare, nella ricerca operativa, nella organizzazione aziendale, nella geografia (sistemi fluviali, reti stradali, trasporti), nella linguistica strutturale, nella storia (alberi genealogici, filologia dei testi)."
Esistono decine se non centinaia di software che permettono di creare grafi. Alcuni semplici, altri complessi; alcuni automatici e a riga di comando, altri visuali.
Oggi vorrei presentarvi un software che mi ha rapito per la flessibilità e la capacità di generare grafi di ottima qualità. Sto parlando di Graphviz.

Graphviz

Graphviz è un software coperto dalla Common Public License Ver 1.0.
Questo significa che è possibile scaricarlo ed installarlo liberamente.
Come quasi tutti i software da me trattati è multipiattaforma: esso, infatti, gira su Linux, Windows e Mac.
Il software è utilizzabile a riga di comando e usufruisce di un semplice linguaggio di programmazione che "spiega" le relazioni fra i blocchi all'interprete: basta scrivere un semplice file di testo con le relazioni, darlo in pasto all'interprete e questo genererà il grafo.
Questa è la parte più interessante perchè il grafo creato con Graphviz è estremamente personalizzabile; si può infatti definire la forma di ciascun blocco, il colore di sfondo, il tipo di freccia e la sua consistenza.
Il sito web è pieno di molti esempi e la documentazione specifica non manca.
I formati di output del grafo sono molteplici: Graphviz, infatti, può generare immagini jpg, gif, png utili per presentazioni o documenti in generale ma anche il prezioso formato eps per essere importato in LaTeX.
Diversi sono i linguaggi di programmazione che si interfacciano nativamente a questo software. Personalmente ho utilizzato con soddisfazione pydot, l'interfaccia python a graphviz ma la risorse collegate a questo programma sono molteplici.
In definitiva, per tutti coloro che hanno bisogno di generare grafi in modo più o meno automatico, consiglio vivamente l'utilizzo di Graphviz. I risultati saranno sicuramente all'altezza delle aspettative!

Nessun commento:

Posta un commento