GraphvizGraph Visualization Software für die DOT Auszeichnungssprache
Graphviz und die DOT Language
Sprachelemente und Anwendung der DOT Language
– Graphen– Syntax– Anwendungsmöglichkeiten
Graphviz
– Installation– Tools– Anwendungsbeispiele
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.
[wikipedia:http://en.wikipedia.org/wiki/DOT_language]
DOT Language – Gerichtete und Ungerichtete Graphen
Graphen bestehen aus einer Menge von Punkten (Knoten) die durch Linien (Kanten) miteinander verbunden sind.
Bei Ungerichtete Graphen verbinden die Kanten die Punkte untereinander.
Bei Gerichteten Graphen zeigen die Kanten außerdem die Richtung der Verbindung zwischen den Knoten an.
DOT Language – Syntax
graph graphname {
a -- b -- c;
b -- d;
}
DOT Language – Grammatik (1)[http://www.graphviz.org/doc/info/lang.html]
EBNF Notation
graph: [ strict ] (graph | digraph) [ ID ] '{' stmt_list '}'
stmt_list: [ stmt [ ';' ] [ stmt_list ] ]
Stmt: | node_stmt | edge_stmt | attr_stmt | ID '=' ID | subgraph
DOT Language – Grammatik (2)[http://www.graphviz.org/doc/info/lang.html]
attr_stmt: (graph | node | edge) attr_list
attr_list: '[' [ a_list ] ']' [ attr_list ]
a_list: ID [ '=' ID ] [ ',' ] [ a_list ]
edge_stmt: (node_id | subgraph) edgeRHS [ attr_list ]
EdgeRHS: edgeop (node_id | subgraph) [ edgeRHS ]
node_stmt: node_id [ attr_list ]
DOT Language – Grammatik (3)[http://www.graphviz.org/doc/info/lang.html]
node_id: ID [ port ]
Port: ':' ID [ ':' compass_pt ] | ':' compass_pt
subgraph: [ subgraph [ ID ] ] '{' stmt_list '}'
compass_pt: (n | ne | e | se | s | sw | w | nw | c | _)
DOT Language – Attribute[http://www.graphviz.org/doc/info/attrs.html]
Zur Spezifizierung des auszugebenden Layouts existieren zahlreiche Attribute.
Attribute Layout Beispiel
style
shape
rankdir
label
color
Aussehen von Kanten und Knoten
Form der Knoten
Orientierung des Graphen
Beschriftungen an Kanten
Farben
style=bold
shabe=box
rankdir=TB
label=“Hello World“
color=lightgrey
DOT Language – Beispiel (1)
graph gInfosysteme {
node [style=unfilled style=bold]
rankdir=LR;
Informationssysteme;
DOT Language – Beispiel (2)
subgraph gInformationssyteme {
node [shape=doubleoctagon style=filled fillcolor=gray90] Informationssysteme -- Themen; Informationssysteme -- Anforderungen; Informationssysteme -- Dozent;
}
DOT Language – Beispiel (3)
subgraph gAnforderungen {
node [shape=box style=filled fillcolor=gray96]
Anforderungen -- Klausur; Anforderungen -- Referat;
subgraph gReferat { node [shape=plaintext style=unfilled] Referat -- "90 Minuten"; Referat -- Gruppenarbeit; }
}
DOT Language – Beispiel (4)
subgraph gDozent {
node [shape=box style=filled fillcolor=gray96] Dozent -- "Jürgen Reischer"; subgraph gJReischer { node [shape=plaintext style=unfilled] "Jürgen Reischer" -- Sprechstunde; "Jürgen Reischer" -- Büro; Sprechstunde -- "Do. 11.00 bis 12.00 Uhr"; Büro -- "PT 3.0.68"; }}
}
DOT Language – Beispiel (5)
Graphviz
Graphviz (short for Graph Visualization Software) is a package of open source tools initiated by AT&T Research
Labs for drawing graphs specified in DOT language scripts
[wikipedia:http://en.wikipedia.org/wiki/Graphviz]
Graphviz - Graph Visualization Software
Open Source Visualization Software– Entwickelt vom AT&T Research Lab– CPL 1.0– Versionen für Windows, Mac und diverse Linux
Systeme– Language Bindings: Java, C#, Ruby, Perl, ...
Programmpaket– Layoutprogramme– Viewer
Graphviz – Download, Installation, Anwendung
Download von der Projektseite www.graphviz.org
Installation per *.msi Datei (Windows) oder Paketmanager (Unix-Systeme)
Bedienung über Kommandozeile oder optionales GUI
Graphviz – Layoutprogramme[http://en.wikipedia.org/wiki/Graphviz]
Programm Ausgabe
dot
neato oder fdp
twopi
circo
Hierarchisches Layout
„Spring Model“ Layout
Radiales Layout
Circuläres Layout
Graphviz - Ausgabeformate
Option Ausgabeformat
-Tps
-Tsvg
-Tpng oder -Tgif oder -Tjpg
-Tdia
Postscript
SVG (Vektorgraphik)
Bitmapformate
DIA
Graphviz - Programmaufruf
Programm -TAusgabeformat Quelldatei -o Ausgabedatei
Graphviz - Ausgabe: dot
Graphviz – Ausgabe: fdp
Graphviz – Ausgabe: circo
Graphviz – Ausgabe: twopi
Graphviz - Anwendungsbeispiel
Darstellung von Verbindungen innerhalb eines Social Network
(1) Graph repräsentiert die Verbindungen zwischen Mitgliedern des Netzwerks
(2) Mitglieder haben eine zufällige Anzahl Freunde
(3) Freunde sind ebenfalls Mitglieder
(4) Knoten repräsentieren die Mitglieder, Kanten die Verbindungen
Quellen
DOT-Language[http://www.graphviz.org/doc/info/lang.html] Letzter Zugriff am 03.06.2010[http://www.graphviz.org/doc/info/attrs.html] Letzter Zugriff am 03.06.2010[http://en.wikipedia.org/wiki/DOT_language] Letzter Zugriff am 03.06.2010
Graphviz[http://www.graphviz.org/] Letzter Zugriff am 03.06.2010[http://en.wikipedia.org/wiki/Graphviz] Letzter Zugriff am 03.06.2010