Grafici GraphViz

   

Questo documento descrive come creare grafici GraphViz utilizzando l'API Chart.

Panoramica

GraphViz è un pacchetto di strumenti open source per la visualizzazione di grafici di connettività. Puoi creare grafici GraphViz utilizzando il linguaggio DOT e i motori di layout che preferisci.

I grafici GraphViz supportano un insieme diverso di parametri obbligatori. Ecco i parametri supportati:

Parametro Obbligatorio o facoltativo Descrizione
cht=gv[:<opt_engine>] Obbligatorio

Specifica un grafico GraphViz. Facoltativamente, puoi specificare un motore GraphViz. Se vuoi specificare un motore di layout, includi il segno del punto e virgola : e specifica una delle seguenti stringhe per <opt_engine>:

  • dot: motore predefinito
  • neato
  • twopi
  • circo
  • fdp

Per una descrizione dei diversi motori, visita il sito web di GraphViz.

chs=<width>x<height> Facoltativo Se non specifichi una dimensione, il grafico verrà ridimensionato automaticamente.
chl=<DOT_string> Obbligatorio Il grafico da disegnare, con notazione DOT. Puoi trovare il riferimento al linguaggio DOT sul sito web di GraphViz.
chd NON UTILIZZATO I codici di GraphViz sono insoliti, in quanto il parametro chd viene ignorato. Non includerlo nell'URL.
chof=<output_format> Facoltativo Un formato di output per il grafico. Consulta la descrizione del parametro per sapere quali formati di output sono supportati. Se specifichi chof=json, riceverai una rappresentazione JSON del grafico come mappa immagine HTML che puoi utilizzare per aggiungere link o elementi interattivi al grafico. Per ulteriori dettagli, consulta la sezione Creazione di una mappa immagine con grafico.
callback=<handling_function_name> Facoltativo Se specifichi chof=json, puoi anche specificare una funzione da chiamare con il JSON restituito che include la mappa immagine del grafico. La funzione deve accettare un singolo parametro JSON, che sarà una rappresentazione JSON del grafico. La pagina può quindi specificare il grafico come elemento <img> per eseguire il rendering del grafico e anche chiamare lo stesso URL con chof=json&callback=somefunc e includere una funzione denominata somefunc() che analizzerà il JSON restituito e aggiungerà link o interattività.

 

Esempi:

Descrizione Esempio

(predefinito).

grafico a punti
cht=gv
chl=digraph{A->B->C->A}
chs=150x150

neato Engine dello stesso grafico. grafico neato
cht=gv:neato
chl=digraph{A->B->C->A}
chs=150x150
Un grafico a punti senza dimensioni specificate. Il grafico viene ridimensionato automaticamente. grafico a punti senza dimensioni specificate
cht=gv
chl=graph{a--b--c;b--d}
Un grafico più complesso. Un grafico a puntini più elaborato
cht=gv
chl=
  graph{C_0--H_0[type=s];C_0--H_1[type=s];C_0--H_2[type=s];C_0--C_1[type=s];C_1--H_3[type=s];C_1--H_4[type=s];C_1--H_5[type=s]}

Di seguito sono riportati alcuni suggerimenti e limitazioni note negli attuali grafici GraphViz:

  • L'attributo graph size non deve essere utilizzato; utilizza invece il parametro dell'API Chart chs.
  • Il numero massimo di nodi è 200 e quello massimo per gli archi è 400.
  • L'antialiasing, la trasparenza e i caratteri alternativi non sono supportati.
  • Gli attributi node image e shapefile non sono supportati e genereranno un errore, se presenti.
  • Gli attributi graph ratio, margin e pad non sono supportati e verranno ignorati se presenti.