TU Logo

Dynamic Visualization of Graphs with Extended Labels
InfoViz 2007, LU

-

Grashäftl Florian, Holzer Bernhard

Unsere Implementierung basiert auf

"Dynamic Visualization of Graphs with Extended Labels"
Pak Chung Wong, Patrick Mackey, Ken Perrine, James Eagan, Harlan Foote, and Jim Thomas, Pacific Northwest National Laboratory, Georgia Institute of Technology

Darin wird ein Ansatz beschrieben, lange Kantenlabels von Graphen effizienter darzustellen. Der ansonsten relativ Aufwendige Prozess der optimalen Platzierung dieser Labels wird umgangen, in dem die Labels selbst als Kante dienen. Dies spart Rechenresourcen und erhält eine gewisse Lesbarkeit, da die Labels den Kanten leichter zuordbar sind

Implementierte Aspekte aus dem Paper

Das Projekt wurde in Java2D als Applet über Eclipse entwickelt. Im Folgenden sollen die wichtigsten Aspekte der Implementierung kurz geschildert werden.

 

standard

our

Kantenrichtung

Im herkömmlichen Ansatz wird die Richtung einer Kante durch eine Pfeilspitze dargestellt. Da in diesem Ansatz die gesamte Kante aus alphanumerischen Zeichen besteht, wird im Paper eine Verringerung der Zeichengröße entlang der Richtung der Kante vorgeschlagen. Laut der User Evalutation der Autoren besteht die größte Schwäche gegenüber dem herkömmlichen Beschriftungsverfahren eben genau darin, dass das Verfolgen von Kanten anhand der Pfeile intuitiver funktioniert als entlang kleiner werdender Zeichen. Aus diesem Grund haben zusätzlich einen Farbverlauf entsprechend der Kantenrichtung hinzugefügt.


Doppelkanten
Um mehrfache Kanten zwischen zwei Knoten leserlich darzustellen, werden die Labels gekrümmt. Die Stärke der Krümmung lässt sich dynamisch einstellen. Generell werden entsprechend dem Paper zu lange Labels abgeschnitten, zu kurze werden wiederholt.

Auflösung
Weiters ist auch die Auflösung der Labels (i.e. die Schriftgröße) einstellbar. Wird die Schrift zu klein eingestellt, wird das Label durch einen Bogen ersetzt.

Semi-Transparenz
Um die Lesbarkeit bei sich überlappenden Labels zu erhöhen, wird im Paper vorgeschlagen diese semi-transparent zu zeichnen. Dies wurde zwar implementiert, der Praktische Nutzen dieser Methode hält sich aber in Grenzen.

Knoten Labels
Eine weitere Verbesserung der Lesbarkeit wird dadurch erreicht, das die Labels der Knoten um den Knoten herum gebogen werden. Dies verringert zwar die Gefahr der Überlappung bei nahe beisammen liegenden Knoten, hat aber den Nachteil dass die Labelgröße begrenzt ist. Kürzere Labels werden zentriert um den Knoten gebogen. Bei zu langen Labels werden sie abgeschnitten und außerdem noch weiter um den Knoten rotiert, um auf die unvollständige Darstellung hinzuweisen.

User Interface:

Im herkömmlichen Ansatz wird die Richtung einer Kante durch eine Pfeilspitze dargestellt. Da in diesem Ansatz die gesamte Kante aus alphanumerischen Zeichen besteht, wird im Paper eine Verringerung der Zeichengröße entlang der Richtung der Kante vorgeschlagen. Laut der User Evalutation der Autoren besteht die größte Schwäche gegenüber dem herkömmlichen Beschriftungsverfahren eben genau darin, dass das Verfolgen von Kanten anhand der Pfeile intuitiver funktioniert als entlang kleiner werdender Zeichen. Aus diesem Grund haben zusätzlich einen Farbverlauf entsprechend der Kantenrichtung hinzugefügt.

controls

Unser Programm unterstützt Grundsätzlich 2 Modi, die durch klicken auf die entsprechenden Buttons aktiviert werden.

  1. create Modus
    In diesem Modus kann ein Graph gezeichnet werden. Durch simples Klicken auf den weißen Hintergrund werden Knoten erzeugt. Um Kanten zu zeichnen, klickt man auf den Startknoten und zieht eine Kante auf den Zielknoten
  2. edit Modus
    Hier können bereits gezeichnete Graphen verändert werden. Es können Knoten mit der Maus verschoben werden, oder nach einem Klick auf eine Kante/Knoten kann das entsprechende Label im hervorgehobenen Eingabefeld geändert werden.

Weiters ist auch eine "herkömmliche" Darstellung des Graphen wählbar, um den Unterschied zum implementierten Ansatz zu verdeutlichen.
Da der Schwerpunkt der Applikation auf der Darstellung der Kantenlabels liegt, lassen sich die Knotenlabels abschalten.
Das Interface bietet die Möglichkeit, mit verschiedenen Parametern experimentieren. Es lassen sich daher der Alphawert der Kantenlabels, sowie deren Größe und Krümmung dynamisch verändern.

 

Links

Das Applet kann man hier ausprobieren.
Ein komprimiertes .JAR archiv kann man hier runterladen.

Den Sourcecode inkl. Dokumentation gibts hier.