Graphviz

Üdvözlöm, Ön a Graphviz szó jelentését keresi. A DICTIOUS-ban nem csak a Graphviz 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 Graphviz szót egyes és többes számban mondani. Minden, amit a Graphviz szóról tudni kell, itt található. A Graphviz szó meghatározása segít abban, hogy pontosabban és helyesebben fogalmazz, amikor beszélsz vagy írsz. AGraphviz é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)

  1. (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ésNagyon sok kimeneti formátumProgramozá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.