ThemeRiver
Eine Programmieraufgabe im Rahmen der Lehrveranstaltung
VU Informationsvisualisierung
SS 2004
Michael Wohlfahrt, 9825026
Jürgen Platzer, 0025360
Inhaltsverzeichnis
1. Beschreibung des ThemeRiver
2. Funktionalität des Programms
4. Vorschläge für Erweiterungen
5. Vergleich: Visualisierung von zeitabhängigen Daten
1. Beschreibung des ThemeRiver
Der ThemeRiver ist eine Visualisierungsmethode, die helfen soll, Trends, Muster unerwartetes Auftreten bzw. Nichtauftreten von Themen oder bestimmten Daten zu identifizieren. Der ThemeRiver dient dazu, Daten die sich über die Zeit hinweg ändern, darzustellen. Das folgende Beispiel soll das Konzept des ThemeRiver verdeutlichen.
In der folgenden Grafik wird ein fiktiver Vergleich zwischen der Anzahl der Arbeitslosen und der Anzahl der Studenten angestellt.
Abbildung 1: ThemeRiver - fiktive Daten: Arbeitslose und Studenten
In dieser Grafik repräsentieren die einzelnen farbigen Bereiche eine Datenausprägung (zB Arbeitslose) über einen bestimmten Zeitraum hinweg. So kann der Benutzer schnell optisch feststellen, wann ein bestimmtes Thema sehr stark vertreten war, in dem man überprüft, wo die entsprechende Fläche ( = Fluss) besonders breit ist (zB Arbeitslose im Jahr 1986). Es können auf diese Art und Weise auch sehr leicht Muster in der zeitlichen Abfolge festgestellt werden. Das Verschwinden von Daten zu gewissen Zeitpunkten wird durch das Versiegen von Flüssen sichtbar.
Eine genaue Beschreibung des ThemeRiver kann in folgenden Papers nachgelesen werden:
ThemeRiver: In Search of Trends, Patterns and Relationships: themeriver99.pdf - 856 KB
ThemeRiver: Visualizing Thematic Changes in Large Document Collections: ThemeRiverIEEE2002.pdf - 4.620 KB
2. Funktionalität des Programms
a) Starten des Programmes
Unser Programm wurde in Java geschrieben. Wir benützten dabei die Version 1.4.2_01. Entsprechende Umgebungen stehen auf der Webpage http://java.sun.com zum Download zur Verfügung.
Wir stellen auf dieser Webpage von unserem Programm den Sourcecode (themeriver_source.zip) als auch den auf Windows XP compilierten Satz an class-Dateien (themeriver.zip) zur Verfügung.
Um das Programm zu kompilieren müssen die Dateien in ein Verzeichnis (zB: C:\ThemeRiver) entpackt werden. Anschließend müssen folgende Befehle ausgeführt werden:
javac -classpath "C:\ThemeRiver"
*.java
javac -classpath "C:\ThemeRiver"
data\*.java
javac -classpath "C:\ThemeRiver"
drawing\*.java
Um das Programm zu starten muss im Verzeichnis, in dem sich die Datei ThemeRiver.class befindet der Befehl
java -classpath "C:\ThemeRiver" ThemeRiver
aufgerufen werden. Anschließend sollte folgendes Fenster am Bildschirm erscheinen.
Abbildung 2: Screenshot des Programms
b) Das Menü Daten
Um eine erste Visualisierung zu erzeugen, müssen Daten geladen werden. Dies erreicht man durch das Aufrufen von Daten/Laden oder den Shortcut Strg+o. Danach kann eine Text-Datei ausgewählt werden (es liegen fiktive Beispieldatensätze vor.). Das Format der Datensätze ist in der folgenden Abbildung dargestellt.
Abbildung 3: Format der Datendateien
Durch das Aufrufen von Daten/Bild exportieren kann man die aktuelle Visualisierung als Bild im JPG- oder PNG-Format abspeichern. Dabei werden die aktuellen Exporteinstellungen benutzt. Diese können durch das Aufrufen von Daten/Exporteinstellungen geändert werden.
c) Das Menü Darstellung
In diesem Menü können unterschiedliche Einstellungen bezüglich der Darstellung der Flussgrenzen (Interpolationsart) und der Anzeige der Datenpunkte eingestellt werden. Weiters kann zwischen einer Histogrammdarstellung und der eigentlichen ThemeRiver-Darstellung entschieden werden. Durch Aufrufen von Darstellung/Farbeinstellungen wird ein eigenes Fenster geöffnet, das das Ändern, Speichern und Laden der Farben für die Flüsse gestattet.
d) Das Menü Magic Lens
Durch das Aufrufen von Magic Lens/Erstellen wird ein Bereich in der aktuellen Visualisierung erstellt, in dem eine andere Darstellungsart angezeigt wird. Die Darstellungsart in diesem Bereich kann über das Magic Lens Menü gesteuert werden. Der Bereich kann durch Ziehen mit der Maus verschoben werden. Durch ziehen des schwarzen Rahmens, der den Bereich umgibt, kann die Magic Lens verkleinert und vergrößert werden. Der Bereich kann mit Hilfe des Menüs Magic Lens/Löschen wieder gelöscht werden.
Im Hintergrund eine ThemeRiver-Darstellung mit linearer Interpolationsart eines Datensatzes, des Daten stark abnehmen. Eine Magic Lens zeigt eine Histogrammdarstellung des Datensatzes mit einer anderen Interpolationsart.
Abbildung 4: Visualisierungsbeispiel 1
Histogrammdarstellung des selben Datensatzes mit Prozentanteilen.
Abbildung 5: Visualisierungsbeispiel 2
Eine Magic Lens zeigt den unterschied zwischen zwei Interpolationsarten auf.
Abbildung 6: Visualisierungsbeispiel 3
4. Vorschläge für Erweiterungen
Der leere Platz oberhalb der ThemeRiver-Visualisierung kann für die Einblendung von Information zu den Daten verwendet werden. Es könnte auch ein Titel für die Grafik angegeben werden.
In der Magic Lens werden in der aktuellen Implementierung keine Datenpunkte eingezeichnet. Dies müsste noch behoben werden.
Es könnten Zooms der x-Achse implementiert werden. Bisher wird die Zeitskala auf das gesamte Bild aufgeteilt. Es wäre aber oft von Vorteil Ausschnitte näher zu betrachten und horizontale Scroll-Möglichkeiten anzubieten. Man könnte diese Zooms auch mit Focus-and-Context-Ansätzen verbinden.
Es könnten Methoden implementiert werden, um Flüsse hervorzuheben, zu vertauschen, zu vereinen, zu vergleichen...
Man könnte als zusätzliche Hilfestellung ein Fenster mit einem Histogramm zur Verfügung stellen, in dem die Verteilung der Daten zu einem gewissen Zeitpunkt, der vom Benutzer verändert werden kann, anzeigt.
Ein zusätzliches Attribut könnte mit Hilfe von Tiefeninformationen kodiert werden. Für den Benutzer würde sich dies durch unterschiedlichen Schattierungen der Flüsse verdeutlichen. Dazu gibt es bereits eine Publikation (3DThemeRiver.pdf - 950 KB).
Für die Flüsse könnte man verschiedene Schattierungsmodi verwenden, damit sie besser abgegrenzt werden. Beispiel: zum Rand hin dunkler werden lassen.