Prinzipiell ist es wünschenswert, eine Grafik so zu gestalten, dass sie bereits sämtliche zum Verständnis benötigten Informationen enthält. Wenn Erklärungen zu den dargestellten Objekten in einer Legende ausgelagert werden, kann eine optimierte Platzierung der Elemente das Erfassen der Zusammenhänge beschleunigen.
Werden in DeltaMaster mehrere Zeitreihen in ein Diagramm gezeichnet, könnte das Ergebnis folgendermaßen aussehen (bitte klicken Sie auf die Grafik für eine vergrößerte Darstellung!):
Die Reihenfolge der äquidistant platzierten Label in der Legende ergibt sich aus der Reihenfolge der Endwerte der Zeitreihen. Durch diese Angleichung der Sortierung wird die Zuordnung von Zeitreihen und ihren Namen bereits deutlich vereinfacht.
Fährt der Mauszeiger über das Legendenelement, wird die zugehörige Zeitreihe auch optisch hervorgehoben. Natürlich existiert diese Möglichkeit der einfacheren Zuordnung nur in der interaktiven Anwendung und nicht für exportierte Darstellungen.
Unabhängig von dieser optischen Hilfe verbleibt in jedem Falle eine vermeidbare vertikale Augenbewegung – hier beispielsweise, um zu Material die passende Zeitreihe zu finden. Was spricht dagegen, die Namen genau auf der Höhe der Endwerte der Zeitreihen anzusiedeln? Eigentlich nichts, also probieren wir diese Idee sofort aus:
Für die Zuordnung von Zeitreihen und Namen muss hier offensichtlich nur wenig Gehirnschmalz verbraten werden. Bevor die Euphorie ob dieser einfachen Lösung in schwindelnde Höhen steigt, werfen wir lieber schnell einen Blick auf das folgende Beispiel:
Es müssen offensichtlich Vorkehrungen getroffen werden, um entstehende Überlappungen bei ähnlichen Endwerten zu vermeiden.
Wir haben die Aufgabe als Optimierungsproblem formuliert: Die gewählten Höhen für die Label sollen so dicht wie möglich bei den Zeitreihenendwerten liegen. Als Zielfunktion wird die Summe der absoluten Abweichungen gewählt, die unter der Nebenbedingung, dass sich Label nicht überlappen dürfen und vollständig im Zeichenbereich liegen müssen, minimiert wird.
Natürlich musste von uns erst einmal ein Algorithmus entwickelt werden, der diese Optimierungsaufgabe auch löst. Eine solchermaßen optimierte Legende ist in der folgenden Grafik dargestellt. Bemerkung: Obwohl sich die Zeitreihen zum vorhergehenden Beispiel unterscheiden, sind die Zeitreihenendwerte unverändert geblieben:
Hier ist die Zuordnung für den Betrachter schon deutlich vereinfacht.
Die Label der Zeitreihen “Bcdef” bis “Ghijk” werden bereits beträchtlich auseinandergezogen, um Überlappungen zu vermeiden. Stört uns diese vertikale Spreizung zu sehr, erlauben wir einfach, Label über mehrere Spalten verteilen zu dürfen. Es entsteht ein erweitertes Optimierungsproblem, das jedoch schwieriger zu lösen ist.
Eine Teilaufgabe ist in der Zuordnung der Label zu den Spalten gegeben. Simultan sollte auch sichergestellt sein, dass die relative Anordnung der Label über alle Spalten hinweg der ursprünglichen Reihenfolge entspricht. Wir haben hier zur Lösung ein mehrstufiges Verfahren entwickelt, das sowohl Heuristiken als auch Optimierungsmodelle verwendet. Im Falle von zwei erlaubten Spalten sieht das Ergebnis folgendermaßen aus:
Hier muss der Anwender ebenfalls wenig Energie für die Zuordnung von Zeitreihen und Namen aufwenden; allenfalls entstehen größere waagerechte Augenbewegungen, die jedoch im Gegensatz zu vertikalen Blickänderungen die Synchronisierung von Zeitreihen und Namen wenig behindern.
Unabhängig davon, welcher der neuen Ansätze gewählt wird, ist die Zuordnung von Zeitreihen und der zugehörigen Label nun deutlich einfacher geworden und der Anwender kann sich ganz auf die Analyse der Zeitreihenverläufe konzentrieren.
Die Idee lässt sich ebenfalls anwenden, falls die Legende links von der Grafik positioniert sein sollte. Dann werden die Legendenelemente natürlich an den Zeitreihenstartwerten ausgerichtet.