Graphviz
Graph 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          Aussehen von Kanten und Knoten
                                                     style=bold
shape          Form der Knoten

rankdir        Orientierung des Graphen              shabe=box
label          Beschriftungen an Kanten
                                                     rankdir=TB
color          Farben
                                                     label=“Hello
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                               Hierarchisches Layout

neato oder fdp                    „Spring Model“ Layout

twopi                             Radiales Layout

circo                             Circuläres Layout
Graphviz - Ausgabeformate


        Option                  Ausgabeformat

-Tps                    Postscript

-Tsvg                   SVG (Vektorgraphik)

-Tpng oder -Tgif oder   Bitmapformate
-Tjpg
                        DIA
-Tdia
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

Graphiz - Using the DOT Language

  • 1.
    Graphviz Graph Visualization Softwarefür die DOT Auszeichnungssprache
  • 2.
    Graphviz und dieDOT Language Sprachelemente und Anwendung der DOT Language – Graphen – Syntax – Anwendungsmöglichkeiten Graphviz – Installation – Tools – Anwendungsbeispiele
  • 3.
  • 4.
    DOT is aplain 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]
  • 5.
    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.
  • 6.
    DOT Language –Syntax graph graphname { a -- b -- c; b -- d; }
  • 7.
    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
  • 8.
    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 ]
  • 9.
    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 | _)
  • 10.
    DOT Language –Attribute [http://www.graphviz.org/doc/info/attrs.html] Zur Spezifizierung des auszugebenden Layouts existieren zahlreiche Attribute. Attribute Layout Beispiel style Aussehen von Kanten und Knoten style=bold shape Form der Knoten rankdir Orientierung des Graphen shabe=box label Beschriftungen an Kanten rankdir=TB color Farben label=“Hello
  • 11.
    DOT Language –Beispiel (1) graph gInfosysteme { node [style=unfilled style=bold] rankdir=LR; Informationssysteme;
  • 12.
    DOT Language –Beispiel (2) subgraph gInformationssyteme { node [shape=doubleoctagon style=filled fillcolor=gray90] Informationssysteme -- Themen; Informationssysteme -- Anforderungen; Informationssysteme -- Dozent; }
  • 13.
    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; } }
  • 14.
    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"; } } }
  • 15.
    DOT Language –Beispiel (5)
  • 16.
  • 17.
    Graphviz (short forGraph 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]
  • 18.
    Graphviz - GraphVisualization 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
  • 19.
    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
  • 20.
    Graphviz – Layoutprogramme [http://en.wikipedia.org/wiki/Graphviz] Programm Ausgabe dot Hierarchisches Layout neato oder fdp „Spring Model“ Layout twopi Radiales Layout circo Circuläres Layout
  • 21.
    Graphviz - Ausgabeformate Option Ausgabeformat -Tps Postscript -Tsvg SVG (Vektorgraphik) -Tpng oder -Tgif oder Bitmapformate -Tjpg DIA -Tdia
  • 22.
    Graphviz - Programmaufruf Programm-TAusgabeformat Quelldatei -o Ausgabedatei
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
    Graphviz - Anwendungsbeispiel Darstellungvon 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
  • 28.
    Quellen DOT-Language [http://www.graphviz.org/doc/info/lang.html] Letzter Zugriffam 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