Björn Klippstein

Graphviz-Erste-Schritte

Klippstein IT Service

Aus 4webmaster.de

Wechseln zu: Navigation, Suche

Mit Graphviz lassen sich schnell und einfach Diagramme erstellen. Strukturdiagramme, Pfeildiagramme und andere Diagramme; automatisch erzeugte Diagramme und aufwändig manuell gestaltete Diagramme.

Auf dieser Seite bekommen Sie konkrete Hilfestellung bei der Erstellung von Diagrammen mit Graphviz. Von einer ersten Einführung bis hin zu den Besonderheiten und Fallstricken der Software, die es (wie immer) auch hier gibt.

Graphviz ist ein Softwarepaket, das sich von den normalen WYSIWYG-Zeichenprogrammen unterscheidet. Anders als bei einem WYSIWYG-Zeichenprogramm zeichnet der Benutzer ein Diagramm nicht wirklich selbst. Stattdessen beschreibt er das Diagramm nur in einer Beschreibungssprache namens DOT. Das genaue Layout wird dann automatisch bestimmt.

Hier gibt es eine Analogie zu HTML, der Beschreibungssprache von Webseiten. Genauso wie HTML nur den Inhalt und die Struktur einer Webseite bescheibt (und dem Browser die Details der Darstellung überlässt), beschreibt DOT nur die Struktur und das Aussehen einer Grafik.

Was bei HTML die Aufgabe des Browsers ist (also die konkrete Darstellung), ist bei Graphviz die Aufgabe des Renderers. Der Renderer macht aus einem DOT-Quellcode ein Diagramm und gibt es als Grafik aus.

Erste Schritte

Zunächst ein einfaches Beispiel, an dem Sie das Grundprinzip erkennen können. Der folgendene DOT-Quelltext ist wohl selbsterklärend und erzeugt untenstehendes Diagramm:

digraph G {
 DOT -> Strukturdiagramme
 DOT -> Pfeildiagramme
 DOT -> MindMaps
}
Hallo Welt

Begriffsklärung

  • Das Programmpaket, mit dem wir hier Diagramme erstellen, heißt Graphviz. Graphviz ist freie Software und für die meisten Betriebssysteme verfügbar.
  • Graphviz enthält insbesondere die Renderer, die letztlich Diagramme erzeugen. Es gibt verschiedene Renderer. Sie heißen dot, neato, fdp, circo und twopi. Je nach verwendetem Renderer sehen die erzeugten Diagramme anders aus.
  • Die Renderer geben Diagramme in den Formaten GIF, PNG, SVG oder PostScript (welches sich nach PDF wandeln lässt) aus.
  • Die Beschreibungssprache für die Diagramme heißt DOT. Alle Renderer interpretieren DOT-Quellcode.
  • Der Renderer dot heißt leider genauso wie die Sprache DOT, mit der die Diagramme beschrieben werden.

Wofür wird Graphviz verwendet?

Graphviz wird gerne zur Erstellung automatischer Diagramme verwendet. Auch zur Integration in Wikis eignet es sich hervorragend.

Wikis: Dadurch, dass die Diagramme nur beschrieben werden statt detailliert gestaltet, lässt sich Graphiz gut in Wikis integrieren. In einem Wiki wird mit Texten ja genauso umgegangen: Mit einer Markup-Language beschreibt man die Struktur des darzustellenden Textes, um die Details der Darstellung kümmert sich die Wiki-Software. Für einige große Wiki-Suiten (Mediawiki, TWiki, DokuWiki) existieren entsprechende Plugins (siehe Web-Links)

Automatische Strukturdiagramme: Beziehungsnetzwerke (wie z.B. soziale Netzwerke), Daten mit komplexen Hierarchien (wie etwa XML-Dokumente) oder gar multihierarchisch strukturierte Daten (wie z.B. das Kategoriensystem der Wikipedia) sind für Menschen nur mit großer Mühe als Gesamtheit erfassbar. Eine grafische Darstellung dieser Strukturen erleichtert es dem menschlichen Gehirn sehr, komplexe Dinge zu erfassen, übergreifende Muster zu erkennen und den Überblick zu bewahren. Um das zu erreichen, kann man die bestehenden Daten in DOT umwandeln und an Graphviz übergeben.

Weniger geeignet ist das Graphiz-Programmpaket, wenn ein Diagramm optisch sehr aufwendig gestaltet und die Darstellung bis ins letzte Detail festgelegt werden soll. Die Stärke von Graphviz ist, schon aus spärlichen Struktur-Angaben direkt ein lesbares Diagramm zu erzeugen.

Eine umfangreiche Liste von Anwendungen, die Graphviz nutzen, findet sich hier [1] auf den Seiten von graphviz.org.

Wie binde ich DOT-Diagramme in mein Wiki ein?

Zunächst muss das entsprechende Plugin / die entsprechende Extension installiert werden, damit das Wiki überhaupt mit DOT umgehen kann.

Dann kann man DOT direkt mit in den Quelltext der Seite schreiben. Um dem Wiki mitzuteilen, dass die folgenden Zeilen als DOT-Quellcode zu interpretieren sind und an den entsprechenden Renderer weitergegeben werden sollen, wird der DOT-Quellcode mit speziellen Tags eingeschlossen. In Mediawiki heißt der Tag graphviz, in TWiki heißt er dot.

In diesem Tutorial wird die Graphviz-Extension für MediaWiki [2] verwendet. Obiges Diagramm lässt sich wie folgt in ein MediaWiki einbinden (wenn die Extension installiert ist):

<graphviz>
     digraph G {
       DOT -> Strukturdiagramme
       DOT -> Pfeildiagramme
       DOT -> MindMaps
     }
 </graphviz>

Ein Beispieldiagramm

Am folgenden Diagramm können Sie die Basics von DOT erlernen. Es ist ist dem User-Guide von graphviz.org entnommen [3]. Im DOT-Quellcode werden drei verschiedene Arten von Objekten verwendet:

  • graph: Im Beispiel gibt es genau einen Graph. Er ist gerichtet (deswegen heißt es digraph) und heißt G. Es gibt auch Diagramme mit ungerichteten Graphen, dazu später mehr. Außerdem kann ein Diagramm mehrere Graphen enthalten.
  • node: Die Nodes (zu deutsch "Knoten") sind die Elemente, die durch den Graphen miteinander verknüpft werden. Im Beispiel heißen die Nodes main, parse, execute, usw. Ein Node muss nicht extra definiert werden, er entsteht bei seiner ersten Verwendung.
  • edge: Die Edges (zu deutsch "Kanten") sind die Verknüpfungen zwischen den Nodes. Eine gerichtete Verknüpfung entsteht, wenn man zwei Nodes mit -> verbindet.


digraph G {
 main -> parse -> execute
 main -> init
 main -> cleanup
 execute -> make_string
 execute -> printf;
 init -> make_string;
 main -> printf;
 execute -> compare;
}
Graphviz-Beispiel


Die Verknüpfungen können untereinander oder auch direkt hintereinander geschrieben werden. Man kann sie mit einem Semikolon trennen oder es lassen, je nachdem wie man es von anderen Sprachen gewöhnt ist.




Dieser Artikel ist ein Originalartikel von 4webmaster.de. Copyright: Björn Klippstein; CC-Lizensierung in Kürze