GraphViz

GraphViz
Bild eines Graphen, erzeugt mit Graphviz 1.16

Graphviz ist ein von AT&T und den Bell-Labs entwickeltes plattformübergreifendes Open-Source-Programmpaket zur Visualisierung von Objekten und deren Beziehungen untereinander. Mathematisch ausgedrückt visualisiert Graphviz gerichtete und ungerichtete Graphen.

Graphviz entnimmt alle zur Erzeugung der Grafik benötigten Anweisungen einer Textdatei, die eine Beschreibung der Knoten und Kanten des Graphen enthält. Die Positionen der einzelnen Knoten sowie die Krümmungen der Kanten werden aus dieser Beschreibung automatisch berechnet und dabei so optimiert, dass die Struktur des Graphen gut erkennbar ist. Zur Beschreibung des darzustellenden Graphen wird die Auszeichnungssprache DOT verwendet. Sie ist syntaktisch an die Programmiersprache C angelehnt. Graphviz bietet bei Bedarf auch zusätzliche Möglichkeiten zur Veränderung des Layouts sowie der Form und Farbgebung des Graphen.

Oft genügt allein die Strukturdefinition des Graphen zur Erzeugung einer passablen Ausgabe. Daher können nicht nur Menschen, sondern auch automatische Prozesse Graphviz zur Erstellung von Visualisierungen nutzen. Auch können an vorhandenen Graphen sehr schnell Veränderungen vorgenommen werden, was mit einem Standard-Grafikprogramm nicht ohne weiteres möglich ist.

Graphviz bietet verschiedene Verfahren zur Visualisierung von Graphen an:

  1. dot: Zur Darstellung hierarchischer Strukturen. Alle Kanten verlaufen dabei in etwa in dieselbe Richtung, von oben nach unten oder von links nach rechts. Überschneidungen der Kanten werden möglichst vermieden und die Kantenlänge wird so kurz wie möglich gehalten.
  2. neato und fdp: Visualisiert Graphen im so genannten „spring model“ Layout. Der Startknoten wird mittig angelegt. Neato benutzt dabei den Kamada-Kawai-Algorithmus. Fdp implementiert die Fruchterman-Reingold-Heuristik für größere Graphen.
  3. twopi: Radiales Layout, nach Graham Wills.
  4. circo: Circuläres Layout, nach Six and Tollis.

Der DOT-Quelltext kann Graphviz z. B. als Textdatei über einen Kommandozeilenbefehl übergeben werden. Als Standard erzeugt Graphviz eine Textdatei als DOT-Quelltext in der die Attribute für die Position und Größe der Knoten und Kanten mit angegeben werden. Über Graphviz kann als Ausgabe aber auch eine Bilddatei erstellt werden. Unterstützt werden unter anderem die Dateiformate Postscript, SVG, JPEG, PNG und PDF.

Inhaltsverzeichnis

Beispiel

Die folgende Definition erzeugt den gerichteten Graphen, dessen Bild auf der rechten Seite zu sehen ist.

digraph Beziehungen {
  nodesep=0.7
  Jutta -> Franz [label="liebt"]
  Bernd -> Franz [label="hasst"]
  Franz -> Bernd [label="hasst"]
  Franz -> Jutta [label="liebt"]
  Bernd -> Jutta [label="liebt"]
}

Erzeugt wurde das eigentliche Bild mit folgendem Befehl:

$ dot -Tsvg eingabe.dot -o "Beziehung Graphviz.svg"

Der Parameter -T legt dabei das Dateiformat der Ausgabedatei fest. Ohne den Parameter -T würde man folgende erweiterte Definition des Graphen erhalten, die in einer weiteren Dot-Datei gespeichert werden kann.

digraph Beziehungen {
  graph [nodesep="0.7"];
  node [label="\N"];
  graph [bb="0,0,137,212"];
  Jutta [pos="106,194", width="0.75", height="0.50"];
  Franz [pos="29,106", width="0.81", height="0.50"];
  Bernd [pos="102,18", width="0.83", height="0.50"];
  Jutta -> Franz [label=liebt, pos="e,20,124 79,191 59,186 32,178 19,158 14,151 14,142 16,133", lp="34,150"];
  Bernd -> Franz [label=hasst, pos="e,42,90 88,34 77,48 61,67 49,82", lp="83,62"];
  Franz -> Bernd [label=hasst, pos="e,72,22 19,89 14,78 10,64 17,54 27,38 45,29 62,25", lp="31,62"];
  Franz -> Jutta [label=liebt, pos="e,92,178 43,122 55,136 72,155 85,170", lp="86,150"];
  Bernd -> Jutta [label=liebt, pos="e,109,176 107,36 108,42 109,48 110,54 118,124 112,132 111,158 111,161 110,163 110,166", lp="125,106"];
}

Logische Bilder mit Graphviz

Logisches Bild, erzeugt mit Graphviz

Mit Graphviz lassen sich auch Logische Bilder erzeugen. Logische Bilder stellen einen Sachverhalt durch eine schematische Zeichnung dar (in Abgrenzung zu einer textuellen Darstellung des Sachverhaltes, wie z. B. dieser Text). Beispiel: das Bild rechts, es zeigt wichtige Formatierungsfähigkeiten von Graphviz für die von ihm visualisierten Objekte. Dafür verwendet es eine Darstellungstechnik, die der einer MindMap ähnelt.

Da Graphviz in der Lage ist, aus einer reinen Beschreibung von Objekten und ihren Beziehungen untereinander eine übersichtliche Visualisierung zu generieren, eignet sich Graphviz gut zur schnellen Erstellung illustrierender Diagramme. Die großen Wiki-Suiten können die Beschreibungssprache DOT mithilfe eines Plugins direkt im Wiki-Quelltext interpretieren und als Bild darstellen. Bei Verwendung dieser Plugins ist es also nicht notwendig, die Kommandozeile zu verwenden. Damit kann Graphviz in einem Wiki zur Illustration komplexer Zusammenhänge eingesetzt werden.

Siehe auch

Weblinks

Beispiele:


Wikimedia Foundation.

Игры ⚽ Поможем сделать НИР

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Graphviz — Developer(s) AT T Labs Research and Contributors[1] Stable release 2.28.0 / May 6 …   Wikipedia

  • Graphviz — Тип Graph Visualization Разработчик AT T …   Википедия

  • Graphviz — Développeurs John Ellson, Emden Gansner, Yehuda Koren, Eleftherios Koutsofios, John Mocenigo, Stephen North, Gordon Woodhull, David Dobkin, Vladimir Alexiev, Bruce Lilly, Jeroen Scheerder …   Wikipédia en Français

  • Graphviz — Bild eines durch Graphviz automatisch erzeugten Graphen: Gemeinsame Grenzen der 48 zusammenhängenden Bundesstaaten der USA sind durch Linien dargestellt Graphviz ist ein von AT T und den Bell Labs entwickeltes plattformübergreifendes Open Source… …   Deutsch Wikipedia

  • DOT (GraphViz) — DOT ist eine einfach gehaltene, aber mächtige Beschreibungssprache für die visuelle Darstellung von Graphen. Mit DOT lässt sich die Struktur eines gerichteten oder ungerichteten Graphen beschreiben. Außerdem besitzt DOT auch Sprachelemente, um… …   Deutsch Wikipedia

  • DOT language — DOT is a plain text graph description language. It is a simple way of describing graphs that both humans and computer programs can use. DOT graphs are typically files that end with the .gv (or .dot) extension. The .gv extension is preferred, as… …   Wikipedia

  • Call graph — A call graph (also known as a call multigraph) is a directed graph that represents calling relationships between subroutines in a computer program. Specifically, each node represents a procedure and each edge (f,g) indicates that procedure f… …   Wikipedia

  • DOT (langage) — Le langage DOT est un langage de description de graphe dans un format texte. Il fait partie de l ensemble d outils open source Graphviz créés par les laboratoires de recherche d AT T. Les fichiers textes contenant une description de graphe… …   Wikipédia en Français

  • Domain-specific language — Programming paradigms Agent oriented Automata based Component based Flow based Pipelined Concatenative Concurrent computing …   Wikipedia

  • DOT — ist eine Abkürzung für: das Business Intelligence Produkt dot datawarehouse operations tool die DOT Nummer, eine Angabe für das Herstellungsdatum von Autoreifen die Klassifizierung von Bremsflüssigkeiten nach deren Siedepunkt Deep Ocean… …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”