Grafici complicati? No problem con Graphviz!



Quante volte ci siamo trovati nei pasticci per dover fare un grafico un po’ complicato? tutte quelle freccie e quelle linee che si intersecano fra di loro, i box, i diamonds e tutto il resto? Se poi, una volta fatto il grafico fosse necessario fare delle modifiche… addio. Sposta di qui, ridimensiona di là, togli la freccia, metti la doppia freccia, questo mettilo più in alto, l’altro più a destra, etc.

Non sarebbe più bello far fare ai computer quello che in effetti è il loro lavoro, ossia macinare calcoli e alla fine presentare il lavoro finito, e invece noi fare quello che è più consono all’uomo, ossia creare e progettare? Ebbene, con la suite Graphviz è possibile fare tuto questo.

Cosè? E’ un’insieme di programmi per generare grafici, in maniera del tutto automatizzata, descrivendone semplicemente la semantica tramite un semplice linguaggio di programmazione. Vediamo come fare utilizzando linux (nello specifico Ubuntu) ma il procedimento è simile anche su Windows.

Supponiamo di voler fare un banalissimo grafico, il classico “Hello, world”. Sotto linux la cosa è di una banalità infinita, infatti basta una riga!!

$ echo "digraph G {Hello->World}" | dot -Tpng > hello_world.png

che ci crediate o no, adesso nella cartella corrente troverete un bel grafico realizzato in formatoPNG, come questo:

Hello World con Graphviz

Ovviamente per fare cose così semplici si poteva anche scomodare un programma di disegno come visio (ma ne siamo davvero sicuri?), ma ci sono casi in cui si rischierebbe di impazzire con i collegamenti. Prendiamo ad esempio un semplice grafico, un flow chart.

digraph grafo {
  dpi=200;
  {  node [shape = doublecircle, fixedsize=true, width=0.8, height=0.8];
    node [label="Inizio"] inizio;
    node [label="Fine"] fine;
  }

  {  node [shape = rectangle, fixedsize=false];
    node [label="Passo 4"] passo4;
    node [label="Passo 3"] passo3;
    node [label="Passo 1"] passo1;
    node [label="Passo 2"] passo2;
  }

  {  node [shape = diamond, fixedsize=false];
    node [label="Bivio 3"] bivio3;
    node [label="Bivio 1"] bivio1;
    node [label="Bivio 2"] bivio2;
  }

  bivio1 -> passo2 [label="Risposta 1"];
  bivio1 -> passo3 [label="Risposta 2"];
  bivio2 -> bivio3 [label="Risposta 4"];
  bivio2 -> passo4 [label="Risposta 3"];
  bivio3 -> bivio1 [label="Risposta 6"];
  bivio3 -> fine [label="Risposta 5"];
  inizio -> passo1 [label=""];
  passo1 -> bivio1 [label=""];
  passo2 -> bivio2 [label=""];
  passo3 -> passo1 [label=""];
  passo4 -> bivio1 [label=""];

}

Il risultato è un grafico più complesso con tanti blocchi che si intrecciano. Immaginate cosa sarebbe spostare il blocco centrale con un normale programma: in pratica rifare il disegno. Con graphviz, invece, basteranno 30 secondi per segnalare al programma il nuovo collegamento e il software, con i suoi algoritmi, penserà a ristrutturare il grafico in maniera che sia il più leggibile possibile. Ovviamante il programma non fa solo flow-chart ma è molto versatile, consiglio a tutti una visita al sito ufficiale: http://www.graphviz.org/ per avere maggior informazioni sulle enormi potenzialità del prodotto.

Per gli utenti windows, inoltre, il programma è dotato anche di una GUI che lo rende sicuramente di più facile utilizzo.

 

Annunci sponsorizzati:
Condividi su Facebook Condividi su Twitter!
Pinterest