Grafici GraphViz

   

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

Panoramica

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

I grafici GraphViz supportano un set diverso di parametri obbligatori. Di seguito sono riportati 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 punto e virgola : e specifica una delle seguenti stringhe per <opt_engine>:

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

Per una descrizione di questi 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, in notazione in lingua DOT. Puoi trovare il riferimento per la lingua dei servizi DOT sul sito web di GraphViz.
chd NON UTILIZZATO I codici 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 scoprire quali formati di output sono supportati. Se specifichi chof=json, verrà restituita una rappresentazione JSON del grafico come mappa immagine HTML che puoi utilizzare per aggiungere link o interattività al grafico. Per maggiori dettagli, consulta la sezione Creazione di una mappa immagine del 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 tua pagina può quindi specificare il grafico come elemento <img> per eseguire il rendering del grafico, 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

esempio di motore scalare (predefinito).

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

esempio di motore Neato dello stesso grafico. grafico neato
cht=gv:neato
chl=digraph{A->B->C->A}
chs=150x150
Un grafico a punti, senza alcuna dimensione specificata. Il grafico viene ridimensionato automaticamente. grafico a punti senza dimensione specificata
cht=gv
chl=graph{a--b--c;b--d}
Un grafico più complesso. Un diagramma a punti 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 limiti noti negli attuali grafici GraphViz:

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