Björn Klippstein

Graphviz-Beschriftung

Klippstein IT Service

Aus 4webmaster.de

Wechseln zu: Navigation, Suche

Beschriftungen

Beschriftung von Nodes

Es gibt drei Möglichkeiten, einen Node zu beschriften:

  • Standardmäßig verwendet Graphviz den Namen eines Nodes als Beschriftung. Das funktioniert prima für einzelne Wörter ohne Sonderzeichen.
  • Wenn Sie Spaces, Sonderzeichen oder Zeilenumbrüche verwenden wollen, können Sie den Namen des Nodes in Anführungszeichen setzen. Auf diese Weise geben Sie dem Node einen möglicherweise komplex formatierten Namen. Graphviz verwendet auch hier den Namen des Nodes als Beschriftung. Der Nachteil dieses Vorgehens ist, dass Sie den Node im Folgenden immer unter seinem möglicherweise komplex formatierten Namen ansprechen müssen. Verwenden Sie Node-Namen in Anführungszeichen also nur dann, wenn der Name trotzdem handlich bleibt, oder wenn Sie den Node nur selten mit anderen Nodes vernetzen.
  • Am flexibelsten ist die Beschriftung eines Nodes mit dem label-Attribut. Geben Sie dem Node einen handlichen Namen, und legen Sie mit dem label-Attribut eine Beschriftung fest, die vom Namen des Nodes abweicht. Sie können auch Zeilenumbrüche einbauen:
    • \n erzeugt einen normalen Zeilenumbruch.
    • Die Varianten \l und \r erzeugen einen Zeilenumbruch und richten die umgebrochene Zeile linksbündig bzw. rechtsbündig aus.
      Der Einsatz von \l und \r sollte wohlüberlegt sein, insbesondere wenn man nicht mit dot rendert, sondern mit neato, fdp, circo oder twopi. Für das kleine Plus an gefälliger Optik handelt man sich eine erhebliche Unflexibilität beim Ändern oder Ergänzen vorhandener Diagramme ein, da sich die Reihenfolge und Plazierung der Nodes auf dem Diagramm ja jederzeit ändern kann.
    • Ein Anführungszeichen bekommen Sie mit \"


Node-Beschriftungen (Graphviz)

Beschriftung von Edges

Auch Edges lassen sich beschriften. Wollen Sie die Edge in der Mitte beschriften, dann weisen Sie ihr ein label-Attribut zu. Für Beschriftungen an der Pfeilspitze verwenden Sie ein anderes Attribut, das headlabel-Attribut. Eine Beschriftung am Ursprung der Edge erreichen Sie mit dem Atttribut taillabel.

Mit decorate=true können Sie Beschriftung und beschriftete Edge durch eine zusätzliche Linie verbinden. Ein zusätzliches labelfloat=true erlaubt dabei Überlappungen und kann zu einem kompakteren Layout führen.

Edge-Beschriftungen (Graphviz)


Alle drei Edge-Beschriftungen lassen sich kombinieren. Sie können also jede Edge theoretisch dreifach beschriften, wenn Sie für eine bestimmte Anwendung die Informationsdichte der Übersichtlichkeit vorziehen. Die Beschriftungen am Ursprung bzw. an der Spitze lasen sich separat formatieren, mit labelfontcolor, labelfontsize und labelfontname. Diese Angaben gelten aber stets sowohl für die Head- als auch für die Tail-Beschriftung.

Graphviz-labels

Unsichtbare Nodes und Edges

Übrigens ist das obige Diagramm ein schönes Beispiel für den Einsatz unsichtbarer Nodes und Edges (style=invis). Im folgenden Diagramm sind die eben noch unsichtbaren Elemente hellgrau eingezeichnet. Die unsichtbaren Elemente erzielen also die Neigung der Edge nach unten.

unsichtbare Nodes

Übersicht: Attribute für die Beschriftung

Attribut Bedeutung Default-Wert Beispiel
label Text der zentrierten Beschriftung label="Hallo!
headlabel Text der Beschriftung an der Spitze headlabel="Spitze"
taillabel Text der Beschriftung am Ursprung taillabel="Ursprung"
decorate Zusätzliche Verbindungsline zur Edge zeichnen? false decorate=true
decorate=true, labelfloat=true
fontname
labelfontname
Schriftart Times fontname=Arial
fontsize
labelfontsize
Schriftgröße 14 fontsize=12
fontcolor
labelfontcolor
Schriftfarbe black fontcolor="#41FB00"



Dieser Artikel ist ein Originalartikel von 4webmaster.de. Copyright: Björn Klippstein; CC-Lizensierung in Kürze