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
 

Related content

Kommentare

Infos zur Publikation

title_2014_08

Digitale Ausgabe: Preis € 5,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

Schnell Multi-Boot-Medien mit MultiCD erstellen
Schnell Multi-Boot-Medien mit MultiCD erstellen
Tim Schürmann, 24.06.2014 12:40, 0 Kommentare

Wer mehrere nützliche Live-Systeme auf eine DVD brennen möchte, kommt mit den Startmedienerstellern der Distributionen nicht besonders weit: Diese ...

Aktuelle Fragen

Server antwortet mit falschem Namen
oin notna, 21.07.2014 19:13, 1 Antworten
Hallo liebe Community, Ich habe mit Apache einen Server aufgesetzt. Soweit, so gut. Im Heimnet...
o2 surfstick software für ubuntu?
daniel soltek, 15.07.2014 18:27, 1 Antworten
hallo zusammen, habe mir einen o2 surfstick huawei bestellt und gerade festgestellt, das der nic...
Öhm - wozu Benutzername, wenn man dann hier mit Klarnamen angezeigt wird?
Thomas Kallay, 03.07.2014 20:30, 1 Antworten
Hallo Team von Linux-Community, kleine Zwischenfrage: warum muß man beim Registrieren einen Us...
openSUSE 13.1 - Login-Problem wg. Fehler im Intel-Grafiktreiber?
Thomas Kallay, 03.07.2014 20:26, 8 Antworten
Hallo Linux-Community, habe hier ein sogenanntes Hybrid-Notebook laufen, mit einer Intel-HD460...
Fernwartung für Linux?
Alfred Böllmann, 20.06.2014 15:30, 7 Antworten
Hi liebe Linux-Freunde, bin beim klassischen Probleme googeln auf www.expertiger.de gestoßen, ei...