Graphviz
Graphviz on automatisoitu työkalu graafien piirtämiseen.
Graphviz piirtään huolellisesti sijoiteltuja graafeja sille annetusta tekstimuotoisesta tiedosta. Piirrettävän graafin tiedot kirjoitetaan tekstitiedostoon, joka kuvaa graafissa esiintyvät solmut ja niiden väliset kaaret. Solmuille määritellään niiden sisältöteksti sekä ulkoasu, eli väri, muoto, tyyppi sekä muita ominaisuuksia, ja kerrotaan, mitkä solmut on yhdistetty toisiinsa kaarilla. Kaarille voidaan niin ikään määritellä erilaisia ominaisuuksia, kuten väri, viivan tyyppi sekä tekstileima. Graphviz muodostaa saamastaan tiedosta graafin, jonka se sijoittelee parhaaksi näkemällään tavalla tasoon. Graphviz pyrkii minimoimaan kaarien päällekkäisyyksiä ja pitämään tuotetun kuvan muutenkin mahdollisimman selkeänä. Valittavissa on muutama eri tavoin optimoitu algoritmi, joilla tuotettujen kuvien solmut sijoitellaan hieman toisistaan poikkeavilla tavoilla.
Ohjelma osaa tuottaa kuvia muutamassa erilaisessa tiedostomuodossa, kuten: PS, PDF, SVG, FIG, PNG ja GIF. Näistä muodoista kuvia voidaan toki muuntaa vielä useampiin muotoihin ja vektorimuotoista SVG-kuvaa voidaan tietenkin myös jatkomuokata esimerkiksi Inkscapella. Ohjelma on erityisen käyttökelpoinen tieteellisten tulosten havainnollistamisessa, kun esitettävä graafimuotoinen materiaali on esimerkiksi jonkin ohjelman automaattisesti tuottamaa dataa.
Ohjelman syötteenään käyttämä DOT-tiedostomuoto on varsin selkeä ja
ymmärrettävä, joskin solmuille ja kaarille voi valita niin monenlaisia
ominaisuuksia, että niihin kannattaa tutustua sopivan dokumentaation ja
esimerkkien kautta. DOT-tiedostossa kerrotaan ensimmäiseksi, onko
kyseessä suunnattu vai suuntaamaton graafi (digraph
tai graph
) tämän
jälkeen luetellaan aaltosulkeiden sisällä solmut ja kaaret, niiden
ominaisuudet sekä koko graafia koskevat ominaisuustiedot. Esimerkiksi:
digraph G {
rankdir=LR;
A -> B [color=red];
A -> C [style=dotted];
B -> D;
C -> D [style=dashed, dir=both];
C [style=filled];
D [shape=box];
}
Yllä oleva esimerkki määrittelee suunnatun graafin, joka koostuu
neljästä solmusta, A, B, C ja D, joiden välille on määritelty kaaria
“->” operaattorilla. Kaarien ja solmujen ominaisuuksille on
määritelty oletusarvoista poikkeavia arvoja hakasulkujen väliin. Solmua
ei tarvitse erikseen luetella, jos se esiintyy jonkin kaaren
päätepisteenä eikä sille haluta antaa oletusarvoista poikkeavia
ominaisuuksia. Graafit kasvavat oletuksena ylhäältä alas päin, mutta
tässä esimerkissä on kasvusuunnaksu määritelty vasemmalta oikealle, eli
LR
.
Tekstimuodossa määritelty graafi käännetään halutun tyyppiseksi kuvaksi jollain tarjolla olevista komentoriviohjelmista: dot, neato, twopi, circo, fdp, sfdp ja patchwork. Nämä ohjelmat soveltavat solmujen ja kaarien sijoitteluun eri algoritmeja ja tuottavat siksi erinäköiset kuvat. Ohjelmat on optimoitu seuraaviin käyttöihin:
- dot - Suunnatut graafit, erityisesti erityisesti puumaiset syklittömät graafit
- neato - Suuntaamattomat graafit
- twopi - Graafit säteittäisellä asettelulla, jossa yksi solmu on keskipiste ja muut etäisyyden mukaan kehinä sen ympärillä
- circo - Ympyrän muotoinen asettelu
- fdp - Suuntaamattomat graafit
- sfdp - Suuntaamattomat graafit
- patchwork - Klustereista koostuvien graafien esittämiseen puukarttoina.
Graafin asettelun laskemiseen sovelletaan graafiteorian tuloksia ja algoritmeja.
Edellä esitetty DOT-tiedosto käännetään kuvatiedostoksi esimerkiksi seuraavasti:
dot -Tpng graphviz.dot -o graphviz.png
Tuotettu lopputulos näyttää tältä:
Minimutkaisemmat graafit voivat muodostua myös aligraafeista. Aligraafeja voidaan käyttää ryhmittelemään graafin solmuja joko niiden asetusten määrittämiseen yhdellä kertaa samanlaisiksi taikka tai niiden sijoitteluun yhtenä ryppäänä.
Graphvizin ymmärtämän DOT-tiedoston luominen ohjelmallisesti on melko
yksinkertaista. Lisäksi useimpiin ohjelmointikieliin löytyvät suoraan
kytkennät Graphvizin käyttämiseen kirjastona. Monet ohjelmat
hyödyntävätkin Graphvizia graafien luomiseen sen sijaan, että
yrittäisivät itse laskea sopivaa sijoittelua graafin solmuille. Eräs
tällainen ohjelma on debtree
, joka tulostaa DOT-tiedoston pyydetyn
Debian- ja Ubuntu-jakeluissa käytettävän deb-paketin riippuvuuksista.
Kotisivu
http://www.graphviz.org/
Lisenssi
Eclipse Public License
(EPL)
Toimii seuraavilla alustoilla
Linux, Solaris, Windows, Mac OS X
Asennus
Linux-jakeluihin Graphviz löytyy suoraan paketinhallinnasta. Muille
alustoille se on ladattavissa ohjelmiston kotisivulta.
Käyttöohjeet
Ohjelman dokumentaatiota
Graafien, solmujen ja kaarien ominaisuuksia
GraphViz for discrete math students
Teksti: Pesasa
Kuvakaappaukset: Pesasa