AA_stationery_jaroas_sxc_1416847.jpg

© Jaroas, sxc.hu

Richtig arrangiert

Graphviz berechnet flexibel Graphen

19.12.2013
Statt sich über das Layout einer Grafik zu verkünsteln, konzentrieren Sie sich mit Graphviz ganz auf die Inhalte und überlassen der Software das Design.

Je mehr Elemente ein Schaubild enthält, desto komplizierter fällt das Anordnen der Knoten aus. Statt nächtelang darüber zu brüten, übergeben Sie diese Aufgabe besser dem Computer, der – mit Graphviz [1] ausgestattet – diese Arbeit perfekt erledigt. Dabei basiert die Software auf einem offenen Format, das auf den Namen DOT hört und aus einfachen Textdateien besteht.

Die meisten Distributionen führen Graphviz bereits in ihren Repositories. Unter Debian und dessen Ablegern wie Ubuntu installieren Sie die Software über den Befehl apt-get install graphviz.

Grundlagen

Listing 1 zeigt die Grundlage für ein einfaches Diagramm. Die erste Zeile definiert das Diagramm mit dem Namen G. Alle anderen Bestandteile, die in den geschweiften Klammern stehen, beziehen sich auf dieses Diagramm – in diesem Fall die Verbindungen für ein Baumdiagramm. Jede Zeile schließen Sie mit einem Strichpunkt ab.

Listing 1

digraph G {
   DOT -> Organisationsdiagramm;
   DOT -> Pfeildiagramme;
   DOT -> MindMaps;
   DOT -> Netzpläne;
}

Graphviz enthält einen Renderer, der die Diagramme erzeugt. Er berechnet, welche Anordnung sich für die einzelnen Elemente am besten eignet. Die Standard-Renderer heißen dot, neato, fdp, circo und twopi. Je nachdem, welchen Renderer Sie verwenden, sehen die Diagramme anders aus.

Die Software unterstützt eine Reihe von Formaten für die Ausgabe. Zu den gebräuchlichsten gehören EPS, JPG, PNG, SVG und PDF. Eine komplette Liste erhalten Sie dot -T?. Wählen Sie als Format für die Ausgabe svg, dann können Sie das Ergebnis mit einem Zeichenprogramm von Hand nachbearbeiten.

Das eigentliche Konvertieren gelingt mit einem einfachen Befehl. Abbildung 1 zeigt das Ergebnis des folgenden Kommandos:

$ dot -T png -o b01-diagram.png b01-diagram.dot
Abbildung 1: Mit einem einfachen Befehl verwandeln Sie die Angaben aus Listing 1 in ein Diagramm.

Die Beschreibungssprache kennt im Wesentlichen drei Objekte, mit denen Sie das Diagramm erstellen (siehe Tabelle "Objekte"). Eigenschaften, die Sie in diesen Objekten festlegen, gelten für alle Objekte – es sei denn, Sie belegen die Eigenschaft mit einem neuen Wert.

Objekte

graph Gerichtete Graphen heißen digraph; ungerichtete Graphen bezeichnen Sie mit graph. Jedes Diagramm kann mehrere Graphen enthalten.
node Knoten, die auf eine bestimmte Weise miteinander in Verbindung stehen. Sie brauchen einen Node nicht extra zu definieren, er entsteht bei seiner ersten Verwendung.
edge Verknüpfungen zwischen den Nodes. Eine gerichtete Verknüpfung entsteht, sobald Sie zwei Nodes mit -> verbinden.

Beschriftung

Standardmäßig verwendet Graphviz zum Beschriften den Namen des Nodes. Für den Node-Namen eignen sich allerdings nicht alle Zeichen, insbesondere nicht Sonderzeichen. Möchten Sie Leerzeichen, Sonderzeichen oder Umbrüche verwenden, so definieren Sie für den Node ein Label (label), wobei Sie dessen Inhalt in Anführungszeichen setzen. Ein Zeilenumbruch fügen Sie mit der Escape-Sequenz \n ein. Mit dem Code aus Listing 2 erstellen Sie eine Übersicht über die Schullaufbahn in Bayern (Abbildung 2).

Listing 2

digraph G {
   G  [label="Grundschule"];
   H  [label="Hauptschule"];
   R  [label="Realschule"];
   Gy [label="Gymnasium"];
   RMNW [label="Mathe-Naturw."];
   RBWR [label="Wirtschaftlich"];
   RF   [label="Französisch"];
   RWS  [label="Musisch/Hausw./Sozial"];
   GYMNW  [label="Naturw.-Technisch"];
   GYSPR  [label="Sprachlich"];
   GYMUS  [label="Musisch"];
   GYWISO [label="Wirtschafts- und Sozialw."];
   G -> H; G -> R; G -> Gy;
   R -> RMNW; R -> RBWR; R -> RF; R -> RWS;
   Gy -> GYMNW; Gy -> GYSPR; Gy -> GYMUS; Gy -> GYWISO;
}
Abbildung 2: Diagramm der Schullaufbahn in Bayern.

Das Ergebnis fällt nicht optimal aus: Besser wäre ein Verlauf von links nach rechts, anstatt von oben nach unten. Das Attribut rankdir des Objekts graph legt die Orientierung des Diagramms fest. Dafür gibt es die Werte TB (von oben nach unten, Grundeinstellung), LR (von links nach rechts), RL (von rechts nach links) und BT (von unten nach oben).

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 6 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 

Ähnliche Artikel

Kommentare

Infos zur Publikation

LU 12/2014: ANONYM & SICHER

Digitale Ausgabe: Preis € 4,95
(inkl. 19% MwSt.)

Mit der Zeitschrift LinuxUser sind Sie als Power-User, Shell-Guru oder Administrator im kleinen Unternehmen monatlich auf dem aktuelle Stand in Sachen Linux und Open Source.

Sie sind sich nicht sicher, ob die Themen Ihnen liegen? Im Probeabo erhalten Sie drei Ausgaben zum reduzierten Preis. Einzelhefte, Abonnements sowie digitale Ausgaben erwerben Sie ganz einfach in unserem Online-Shop.

NEU: DIGITALE AUSGABEN FÜR TABLET & SMARTPHONE

HINWEIS ZU PAYPAL: Die Zahlung ist auch ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!       

Tipp der Woche

Ubuntu 14.10 und VirtualBox
Ubuntu 14.10 und VirtualBox
Tim Schürmann, 08.11.2014 18:45, 0 Kommentare

Wer Ubuntu 14.10 in einer virtuellen Maschine unter VirtualBox startet, der landet unter Umständen in einem Fenster mit Grafikmüll. Zu einem korrekt ...

Aktuelle Fragen

Nach Ubdates alles weg ...
Maria Hänel, 15.11.2014 17:23, 4 Antworten
Ich brauche dringen eure Hilfe . Ich habe am wochenende ein paar Ubdates durch mein Notebook von...
Brother Drucker MFC-7420
helmut berger, 11.11.2014 12:40, 1 Antworten
Hallo, ich habe einen Drucker, brother MFC-7420. Bin erst seit einigen Tagen ubuntu 14.04-Nutzer...
Treiber für Drucker brother MFC-7420
helmut berger, 10.11.2014 16:05, 2 Antworten
Hallo, ich habe einen Drucker, brother MFC-7420. Bin erst seit einigen Tagen ubuntu12.14-Nutzer u...
Can't find X includes.
Roland Welcker, 05.11.2014 14:39, 1 Antworten
Diese Meldung erhalte ich beim Versuch, kdar zu installieren. OpenSuse 12.3. Gruß an alle Linuxf...
DVDs über einen geeigneten DLNA-Server schauen
GoaSkin , 03.11.2014 17:19, 0 Antworten
Mein DVD-Player wird fast nie genutzt. Darum möchte ich ihn eigentlich gerne abbauen. Dennoch wür...