nw  

Scientific Charts in JavaFX

Zusammenfassung

Das Ziel der Arbeit war es verschiedene Diagramme zu entwickeln, welche zur graphischen Analyse von wissenschaftlichen Daten beitragen.

Schlüsselbegriffe

Java, JavaFX, Diagramme, wissenschaftliche Daten

Zielsetzung

Einfach zu verwendende, flexible JavaFX Diagramm-Komponenten zu entwickeln die in einer Vielzahl wissenschaftlicher Projekte eingebunden werden können.

Ausgangslage

Die in JavaFX zur Verfügung stehenden Charts sind für viele Dinge ausreichend, jedoch genügen sie nicht den Ansprüchen im wissenschaftlichen Bereich. Aus diesem Grund ist es sinnvoll eine Chart Bibliothek zu erstellen, welche den speziellen Ansprüchen zur Visualisierung und grafischer Analyse von wissenschaftlichen Daten gerecht wird.

Ergebnisse

Zwei vollumfängliche Diagramm-Komponenten wurden entwickelt.
Für eine dritte Diagramm-Komponente wurden Analysen durchgeführt, sowie ein Klassendiagramm und Datenmodell erarbeitet.

Force Directed Graph.

Dieser Graph kann die Verbindung zwischen mehreren Nodes darstellen, welche unterschiedlichste Entitäten repräsentieren können.
Um die Stärke der Verbindungen zwischen den Nodes darzustellen, wird eine physikalische Simulation angewandt, welche die Gesetze von Hooke und Coulomb verwenden um die Abstossung und Anziehung der Nodes zu simulieren. Die Anziehungskraft zwischen Nodes basiert auf den vom User bereitgestellten Daten. Jedes Feld mit einem nummerischen Datentyp kann vom Graphen verwendet werden um diese Anziehungskraft zu simulieren. Die Grösse der Nodes sowie die Breite der Verbindungen zwischen ihnen, Edges genannt, können ebenfalls an jeden nummerischen Wert in den vom User bereitgestellten Daten geknüpft werden.
Diese Art der Visualisierung vereinfacht das Erkennen von engen Verbindungen, indem es eng verknüpfte Nodes sich in Clustern sammeln lässt.

Pareto Chart

Das Pareto Chart wird häufig in Optimierungsaufgaben und Quality-Management verwendet. Es ist eine Kombination aus einem Säulendiagramm und einem Liniendiagramm. Die Säulen werden der Grösse nach absteigend sortiert, wobei die linke Y-Achse die Werteskala der Säulen anzeigt.
Die Linie, welche über den Säulen verläuft, summiert die Werte dieser auf und gibt an jedem Punkt an, wie viel Prozent der Gesammtsumme erreicht wurde.
Der Wert einer Säule kann sich aus mehreren anderen Werten zusammensetzen. Aus diesem Grund ist es möglich dies darzustellen, indem eine Säule aus mehreren Säulen besteht. In unserer Anwendung wird eine solche Verschachtelung dargestellt, indem die untergeordneten Säulen innerhalb der Säule dargestellt werden, in der sie vorhanden sind.
Der Benutzer kann sich diese verschachtelten Säulen als eigenes Paretodiagramm anzeigen lassen, indem er auf die Säule klickt, welche die gewünschten Daten beinhaltet.

Streudiagramm mit Zeitachse

Das dritte Diagramm ist ein Streudiagramm, welches zusätzlich eine Zeitachse besitzt. Hierbei handelt es sich um eine Analyse, aus der das oben vorliegende Klassendiagramm hervorging. Damit ist der Grundstein gelegt um eine sehr flexible und mächtige Implementation umzusetzen.
Daten die sich über Zeit ändern werden dabei in einem Streudiagramm angezeigt. Der Benutzer kann auswählen, welcher Zeitpunkt dargestellt wird. Ebenfalls kann konfiguriert werden, was X-,Y-Achse und die Grösse der Nodes darstellen.
Das Strategy Pattern wurde verwendet um dem Benutzer die Möglichkeit zu geben, die Daten vor dem Anzeigen nach selbst definierten Regeln zu überarbeiten und die darzustellenden Datensätze zu filtern.
Dieser Ansatz ermöglicht es die selben Daten auf komplett unterschiedliche Weise zu visualisieren und die Anzeige dem Analysezweck anzupassen.

Projektdaten

Projektdauer: ein Semester, Aufwand in Personenstunden: 720 Personenstunden gesammt,
Teamgrösse: Zwei-Personen Team, Bachelor Thesis

Auftraggeber

Gerrit Grunwald



http://www.canoo.com/

Projektteam

Michael Läuchli
Stefan Mettler

Kontakt

Betreuer: Dieter Holz dieter.holz@fhnw.ch
Experte: Edwin Steiner edwin.steiner@inventage.com

<< zurück