szó jelentését keresi. A DICTIOUS-ban nem csak a
szó összes szótári jelentését megtalálod, hanem megismerheted az etimológiáját, a jellemzőit és azt is, hogyan kell a
szót egyes és többes számban mondani. Minden, amit a
szóról tudni kell, itt található. A
szó meghatározása segít abban, hogy pontosabban és helyesebben fogalmazz, amikor beszélsz vagy írsz. A
és más szavak definíciójának ismerete gazdagítja a szókincsedet, és több és jobb nyelvi forráshoz juttat.
Főnév
Graphviz (tsz. Graphvizes)
- (informatika) A Graphviz (Graph Visualization Software) egy nyílt forráskódú szoftvercsomag, amely lehetővé teszi gráfok automatikus vizualizációját. Gráf alatt olyan matematikai struktúrát értünk, amely csomópontokból (node-okból) és élekből (edge-ekből) áll. A Graphviz segítségével a gráfokat leíró szöveges állományból professzionális kinézetű diagramokat lehet automatikusan generálni.
A Graphviz-et az AT&T Research fejlesztette ki, első verziója 1991-ben jelent meg. A projekt máig aktív, GPL licenc alatt elérhető, így ingyenesen használható és módosítható.
Alkalmazási területek
A Graphviz számos területen népszerű:
- szoftverfejlesztés: UML diagramok, osztálydiagramok, függőségi gráfok
- adatvizualizáció: hálózati topológiák, kapcsolati gráfok
- adatbázisok: ER (Entity-Relationship) diagramok
- bioinformatika: gének közötti kapcsolatok ábrázolása
- projektmenedzsment: munkafolyamatok, folyamatábrák
- mesterséges intelligencia: döntési fák, Bayes-hálók
A Graphviz architektúrája
A Graphviz több részből áll:
- DOT: egy szabványos, egyszerű szöveges nyelv gráfok leírására
- feldolgozó programok: ezek olvassák a DOT fájlt, és állítanak elő különféle formátumú diagramokat (PDF, SVG, PNG, PostScript stb.)
- dot – irányított gráfok hierarchikus elrendezése
- neato – általános (nem irányított) gráfok erő-alapú elrendezése
- fdp – szintén erő-alapú elrendezés
- circo – körkörös elrendezés
- twopi – koncentrikus körökbe helyezi a gráfot
- kimeneti driverek: SVG, PNG, PostScript, PDF, plain text, JSON stb.
A DOT nyelv alapjai
A DOT a Graphviz gráfok leírására szolgáló nyelv. A szintaxis nagyon egyszerű:
digraph G {
A -> B;
B -> C;
C -> A;
}
A fenti példa egy irányított gráfot ír le, ahol három csúcs van (A, B, C), és köztük három él.
Ha nem irányított gráfot akarunk, graph
kulcsszót, és --
kapcsolatjelölést használunk:
graph G {
A -- B;
B -- C;
C -- A;
}
Alapvető elemek:
- graph / digraph: gráf típusa
- node: csúcs (pont, állomás)
- edge: él (kapcsolat)
- label: felirat
- shape: csúcs alakja (ellipse, box, circle, diamond, stb.)
- color: szín
- style: vonal vagy csúcs stílusa (solid, dashed, dotted, bold stb.)
Bővebb példa:
digraph G {
node ;
Start -> Process1;
Process1 -> Decision;
Decision -> Process2;
Decision -> End;
Process2 -> End;
}
Ezzel egy egyszerű folyamatábrát lehet készíteni.
Futtatás
A Graphviz parancssorból is futtatható:
dot -Tpng input.dot -o output.png
Itt a -T
opcióval választjuk ki a kimeneti formátumot.
Gyakori formátumok:
- PNG (
-Tpng
)
- PDF (
-Tpdf
)
- SVG (
-Tsvg
)
- PS (
-Tps
)
Programkönyvtárak és nyelvi kötés
A Graphviz-nek számos nyelvi API-ja is elérhető:
- C (libgraph, libgvc)
- Python: pl.
graphviz
Python csomag (pip install graphviz
)
- Java: JGraphT, Graphviz-java
- JavaScript: viz.js (Graphviz WebAssembly változata)
- C++, Go, Rust – szintén elérhetők különféle wrapper-ek.
Ezek segítségével dinamikusan, programból is generálhatunk gráfokat, nem kell feltétlenül kézzel DOT fájlokat írni.
Python példa:
from graphviz import Digraph
dot = Digraph(comment='Egyszerű gráf')
dot.node('A', 'Start')
dot.node('B', 'Process')
dot.node('C', 'End')
dot.edges()
dot.render('simple_graph', format='png')
Elrendezési algoritmusok
A Graphviz kulcsa a jó elrendezés automatikus megtalálása.
- dot: a Sugiyama-elrendezés algoritmusát használja (hierarchikus elrendezés)
- neato / fdp: erő-alapú elrendezés (force-directed layout) – szimulált fizikai modellel helyezi el a csúcsokat
- twopi: körkörös rétegek
- circo: körkörös elrendezés
Ezek az algoritmusok próbálják minimalizálni az él-kereszteződéseket, kiegyensúlyozott vizuális eredményt adni.
Stílusok és testreszabás
A DOT nyelv nagyon testreszabható.
Csúcsok:
node ;
Élek:
edge ;
Globális beállítások:
graph ; // balról jobbra irányítja a gráfot
Kompatibilitás és integráció
A Graphviz-t számos más program is használja backend-ként:
- Doxygen (automatikus dokumentáció generálás)
- PlantUML (UML diagramok szöveges nyelvből)
- Gephi (hálózat-analízis)
- Jupyter Notebook (Python + Graphviz integráció)
- LaTeX (TikZ, PGF)
Előnyök
✅ Ingyenes, nyílt forráskódú ✅ Platformfüggetlen (Linux, Windows, MacOS) ✅ Automatikus elrendezés ✅ Nagyon sok kimeneti formátum ✅ Programozásból is használható ✅ Egyszerű DOT nyelv
Hátrányok
⚠️ Nagyon nagy gráfok esetén az elrendezés lassú lehet ⚠️ DOT szintaxisban komplex kinézet finomhangolása nehéz ⚠️ Nem interaktív (statikus képek) – interaktív vizualizációhoz pl. D3.js jobb
Összegzés
A Graphviz a világ egyik legismertebb gráfrajzoló eszköze. Használata egyszerű, DOT nyelvvel akár néhány soros szövegfájlokból is nagyon szép diagramokat készíthetünk.
Ha például szoftverprojektekben UML, függőségi, vagy folyamatábrákat akarunk gyorsan generálni, a Graphviz kitűnő választás.
Számos program integráltan használja Graphviz-t háttérben – lehet, hogy anélkül is használtad már, hogy tudtad volna.
Programozóknak, adatelemzőknek, kutatóknak – alapvető eszköz a vizuális gráfreprezentációhoz.